From 656cd96ec989cf98a053baa917282fec8a84d925 Mon Sep 17 00:00:00 2001 From: JY20 Date: Wed, 21 May 2025 16:13:05 -0400 Subject: [PATCH 1/7] adding the quantmart updates back and clean up --- trivex_contract/src/interfaces.cairo | 10 +- trivex_contract/src/starkstructs.cairo | 7 + trivex_contract/src/trivexaction.cairo | 132 +++++- trivex_frontend/src/assets/data.json | 38 ++ trivex_frontend/src/assets/layers.png | Bin 74155 -> 0 bytes trivex_frontend/src/assets/layers_removed.png | Bin 91406 -> 0 bytes trivex_frontend/src/assets/logo.png | Bin 47487 -> 0 bytes trivex_frontend/src/assets/logo5.png | Bin 134052 -> 0 bytes .../src/components/AppContract.jsx | 67 +-- .../src/components/Information.jsx | 253 +++++++++++ trivex_frontend/src/components/Result.jsx | 96 ++++ trivex_frontend/src/components/Selection.jsx | 100 ++++ .../src/components/paramCreator.jsx | 44 ++ trivex_frontend/src/pages/StrategyPage.js | 428 +++++------------- 14 files changed, 811 insertions(+), 364 deletions(-) create mode 100644 trivex_frontend/src/assets/data.json delete mode 100644 trivex_frontend/src/assets/layers.png delete mode 100644 trivex_frontend/src/assets/layers_removed.png delete mode 100644 trivex_frontend/src/assets/logo.png delete mode 100644 trivex_frontend/src/assets/logo5.png create mode 100644 trivex_frontend/src/components/Information.jsx create mode 100644 trivex_frontend/src/components/Result.jsx create mode 100644 trivex_frontend/src/components/Selection.jsx create mode 100644 trivex_frontend/src/components/paramCreator.jsx diff --git a/trivex_contract/src/interfaces.cairo b/trivex_contract/src/interfaces.cairo index 263c157..7f05e54 100644 --- a/trivex_contract/src/interfaces.cairo +++ b/trivex_contract/src/interfaces.cairo @@ -1,4 +1,4 @@ -use trivex_contract::starkstructs::{Position, order_book_entry}; +use trivex_contract::starkstructs::{Position, order_book_entry, history_entry}; use starknet::ContractAddress; use trivex_contract::utils::{UserAddress, Amount, TokenAddress}; @@ -11,8 +11,6 @@ pub trait ITrivexAction { fn get_transactions(self: @TContractState, user: UserAddress) -> Array; fn get_all_user_addresses(self: @TContractState) -> Array; fn get_internal_order_book(self: @TContractState) -> Array; - fn run_strategy(ref self: TContractState, strategy: felt252, amount: Amount, token_address: TokenAddress); - fn get_strategy_price(self: @TContractState, strategy: felt252) -> Amount; fn stake(ref self: TContractState, amount: Amount, token_address: TokenAddress); fn unstake(ref self: TContractState, amount: Amount, token_address: TokenAddress); fn get_staked(self: @TContractState, token_address: TokenAddress, user_address: UserAddress) -> Amount; @@ -23,4 +21,10 @@ pub trait ITrivexAction { fn set_available_balance(ref self: TContractState, value: u256); fn update_external_order_book(ref self: TContractState, symbol: felt252, leverage: u128, total_value: u256, action: felt252); fn get_external_order_book(self: @TContractState) -> Array; + fn run_strategy(ref self: TContractState, strategy: felt252, amount: Amount, token_address: TokenAddress); + fn get_strategy_price(self: @TContractState, strategy: felt252) -> Amount; + fn set_strategy(ref self: TContractState, strategy: felt252, amount: Amount, creator_address: UserAddress); + fn get_history(self: @TContractState, user: UserAddress) -> Array; + fn get_all_histories(self: @TContractState) -> Array; + fn get_all_user_addresses_strategy(self: @TContractState) -> Array; } \ No newline at end of file diff --git a/trivex_contract/src/starkstructs.cairo b/trivex_contract/src/starkstructs.cairo index cb1078d..3d09d12 100644 --- a/trivex_contract/src/starkstructs.cairo +++ b/trivex_contract/src/starkstructs.cairo @@ -18,4 +18,11 @@ pub struct order_book_entry { pub symbol: felt252, pub leverage: u128, pub amount: Amount +} + +#[derive(Copy, Serde, Drop, starknet::Store)] +pub struct history_entry { + pub strategy: felt252, + pub amount: Amount, + pub datetime: u64 } \ No newline at end of file diff --git a/trivex_contract/src/trivexaction.cairo b/trivex_contract/src/trivexaction.cairo index 69e4b23..a02e259 100644 --- a/trivex_contract/src/trivexaction.cairo +++ b/trivex_contract/src/trivexaction.cairo @@ -6,7 +6,7 @@ mod TrivexAction { use core::clone::Clone; use trivex_contract::interfaces::ITrivexAction; use starknet::{get_caller_address, ContractAddress, get_contract_address, get_block_timestamp}; - use trivex_contract::starkstructs::{Position, order_book_entry}; + use trivex_contract::starkstructs::{Position, order_book_entry, history_entry}; use trivex_contract::utils::{UserAddress, TokenAddress, Amount}; use trivex_contract::erc20::{IERC20Dispatcher}; use starknet::contract_address_const; @@ -33,7 +33,11 @@ mod TrivexAction { lender_interest_rate: u256, strategy_price: LegacyMap, strategy_creator: LegacyMap, - owner: UserAddress + owner: UserAddress, + history: LegacyMap<(UserAddress, u128), history_entry>, + user_history_counts: LegacyMap, + strategy_addresses: LegacyMap, + strategy_addresses_len: u256, } #[constructor] @@ -264,29 +268,6 @@ mod TrivexAction { entries } - fn run_strategy(ref self: ContractState, strategy: felt252, amount: Amount, token_address: TokenAddress) { - let caller = get_caller_address(); - let creator = self.strategy_creator.read(strategy); - - let fee_part = amount*20/100; - let payout_part = amount*80/100; - - let token: IERC20Dispatcher = IERC20Dispatcher { - contract_address: token_address, - }; - - let contract_addr = get_contract_address(); - let transfer1 = token.transferFrom(caller, contract_addr, fee_part); - assert(transfer1, 'Contract fee transfer failed.'); - - let transfer2 = token.transferFrom(caller, creator, payout_part); - assert(transfer2, 'Creator payout transfer failed.'); - } - - fn get_strategy_price(self: @ContractState, strategy: felt252) -> Amount{ - self.strategy_price.read(strategy) - } - fn stake(ref self: ContractState, amount: Amount, token_address: TokenAddress) { let caller = get_caller_address(); let token = IERC20Dispatcher { contract_address: token_address }; @@ -401,5 +382,106 @@ mod TrivexAction { entries } + + fn run_strategy(ref self: ContractState, strategy: felt252, amount: Amount, token_address: TokenAddress) { + let caller = get_caller_address(); + let creator = self.strategy_creator.read(strategy); + + let fee_part = amount*20/100; + let payout_part = amount*80/100; + + let token: IERC20Dispatcher = IERC20Dispatcher { + contract_address: token_address, + }; + + let contract_addr = get_contract_address(); + let transfer1 = token.transferFrom(caller, contract_addr, fee_part); + assert(transfer1, 'Contract fee transfer failed.'); + + let transfer2 = token.transferFrom(caller, creator, payout_part); + assert(transfer2, 'Creator payout transfer failed.'); + + let count = self.user_history_counts.read(caller); + let history_value = history_entry { + strategy: strategy, + amount: amount, + datetime: get_block_timestamp() + }; + + if count == 0 { + let current_user_count = self.strategy_addresses_len.read(); + self.strategy_addresses.write(current_user_count, caller); + self.strategy_addresses_len.write(current_user_count + 1); + }; + + self.history.write((caller, count), history_value); + self.user_history_counts.write(caller, count + 1); + } + + fn get_strategy_price(self: @ContractState, strategy: felt252) -> Amount{ + self.strategy_price.read(strategy) + } + + fn set_strategy(ref self: ContractState, strategy: felt252, amount: Amount, creator_address: UserAddress) { + let caller = get_caller_address(); + let owner = self.owner.read(); + assert(caller == owner, 'NOT_OWNER'); + + self.strategy_price.write(strategy, amount); + self.strategy_creator.write(strategy, creator_address); + } + + fn get_history(self: @ContractState, user: UserAddress) -> Array { + let count = self.user_history_counts.read(user); + let mut histories = ArrayTrait::new(); + let mut i = 0; + + while i < count { + let history_value = self.history.read((user, i)); + histories.append(history_value); + i = i + 1; + }; + + return histories; + } + + fn get_all_histories(self: @ContractState) -> Array { + let mut all_histories = ArrayTrait::new(); + let total_users = self.strategy_addresses_len.read(); + let mut u = 0; + + while u < total_users { + let user = self.strategy_addresses.read(u); + let count = self.user_history_counts.read(user); + let mut i = 0; + + while i < count { + let history_value = self.history.read((user, i)); + all_histories.append(history_value); + i = i + 1; + }; + + u = u + 1; + }; + + return all_histories; + } + + fn get_all_user_addresses_strategy(self: @ContractState) -> Array { + let length = self.strategy_addresses_len.read(); + let mut addresses = ArrayTrait::new(); + let mut i = 0_u256; + + loop { + if i == length { + break; + } + let addr = self.strategy_addresses.read(i); + addresses.append(addr); + i = i + 1; + }; + + addresses + } } } diff --git a/trivex_frontend/src/assets/data.json b/trivex_frontend/src/assets/data.json new file mode 100644 index 0000000..ba91363 --- /dev/null +++ b/trivex_frontend/src/assets/data.json @@ -0,0 +1,38 @@ +[ + { + "label": "Average Rebalance", + "value": "averageRebalance", + "tags": "Low Frequency", + "cost": 1, + "creator": "0x012B099F50C3CbCc82ccF7Ee557c9d60255c35C359eA6615435B761Ec3336EC8", + "rating": 4.5, + "description": "This strategy rebalances your portfolio based on the average value of selected assets over a given period." + }, + { + "label": "Momentum", + "value": "momentum", + "tags": "Low Frequency", + "cost": 2, + "creator": "0x012B099F50C3CbCc82ccF7Ee557c9d60255c35C359eA6615435B761Ec3336EC8", + "rating": 4, + "description": "This strategy capitalizes on asset price trends, allocating capital to assets showing strong upward momentum." + }, + { + "label": "Standard Deviation", + "value": "standardDeviation", + "tags": "Calculator", + "cost": 2, + "creator": "0x012B099F50C3CbCc82ccF7Ee557c9d60255c35C359eA6615435B761Ec3336EC8", + "rating": 4, + "description": "This tool calculates the standard deviation of asset returns to assess portfolio volatility and risk." + }, + { + "label": "Co-Variance", + "value": "coVariance", + "tags": "Calculator", + "cost": 2, + "creator": "0x012B099F50C3CbCc82ccF7Ee557c9d60255c35C359eA6615435B761Ec3336EC8", + "rating": 4, + "description": "This tool measures the co-variance between asset returns to optimize portfolio diversification. Add \"-USD\" at the end for crypto symbols." + } +] \ No newline at end of file diff --git a/trivex_frontend/src/assets/layers.png b/trivex_frontend/src/assets/layers.png deleted file mode 100644 index 8a60c017b81d966106d5df381cb5a6e3ee693ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74155 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 TytLCK0-l%3+Am5Kt>66*hwZ0) diff --git a/trivex_frontend/src/assets/logo.png b/trivex_frontend/src/assets/logo.png deleted file mode 100644 index 43178a1ebdd0eda7ebe80d3abfa7faaa022ffdae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47487 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 diff --git a/trivex_frontend/src/assets/logo5.png b/trivex_frontend/src/assets/logo5.png deleted file mode 100644 index f9b6ff71161739afc336a75afcb85c726f5ba796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134052 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 YI;F{z`0Om;AA;PGSG|>U1N->@0M;!H6aWAK diff --git a/trivex_frontend/src/components/AppContract.jsx b/trivex_frontend/src/components/AppContract.jsx index 981a5c5..fb6912c 100644 --- a/trivex_frontend/src/components/AppContract.jsx +++ b/trivex_frontend/src/components/AppContract.jsx @@ -200,32 +200,6 @@ export class AppContract { return transactions; } - async run_strategy(account, strategy, amount) { - const provider = account; - const abi = await this.getABI(classHash); - const contract = new Contract(abi, contractAddress, provider); - const weiAmount = amount * 1e18; - const run_strategy = contract.populate("run_strategy", [strategy, BigInt(weiAmount), strkTokenAddress]); - - const result = await provider.execute([ - { - contractAddress: strkTokenAddress, - entrypoint: "approve", - calldata: CallData.compile({ - spender: contractAddress, - amount: cairo.uint256(weiAmount), - }), - }, - { - contractAddress: contractAddress, - entrypoint: "run_strategy", - calldata: run_strategy.calldata, - } - ]); - - return result; - } - async getUsers() { const abi = await this.getABI(classHash); const contract = new Contract(abi, contractAddress, hash_provider); @@ -268,4 +242,45 @@ export class AppContract { const result = Number(resultRaw); return result; } + + async run_strategy(account, strategy, amount) { + const provider = account; + const abi = await this.getABI(classHash); + const contract = new Contract(abi, contractAddress, provider); + const weiAmount = amount * 1e18; + const run_strategy = contract.populate("run_strategy", [strategy, BigInt(weiAmount), strkTokenAddress]); + + const result = await provider.execute([ + { + contractAddress: strkTokenAddress, + entrypoint: "approve", + calldata: CallData.compile({ + spender: contractAddress, + amount: cairo.uint256(weiAmount), + }), + }, + { + contractAddress: contractAddress, + entrypoint: "run_strategy", + calldata: run_strategy.calldata, + } + ]); + + return result; + } + + async getUserHistory(walletAddress) { + const abi = await this.getABI(classHash); + const contract = new Contract(abi, contractAddress, hash_provider); + const raw = await contract.call('get_history', [walletAddress]); + + const history = raw.map(item => ({ + strategy: shortString.decodeShortString(item.strategy), + amount: Number(item.amount)/1e18, + datetime: new Date(Number(item.datetime) * 1000) + })); + + console.log(history); + return history; + }; } diff --git a/trivex_frontend/src/components/Information.jsx b/trivex_frontend/src/components/Information.jsx new file mode 100644 index 0000000..7537bf8 --- /dev/null +++ b/trivex_frontend/src/components/Information.jsx @@ -0,0 +1,253 @@ +import React, { useState } from 'react'; +import { Box, Typography, Button, Rating, TextField, MenuItem, Switch } from '@mui/material'; +import ParamCreator from './paramCreator'; + +const Information = ({ info, onRunStrategy, strategy, parameters, parameterMap, handleParamChange }) => { + const [params, setParams] = useState([{ parameter: '', type: '' }]); + + if (!info) return null; + + const { label, cost, creator, rating, description } = info; + const paramsForStrategy = parameterMap[strategy] || []; + + return ( + + + {strategy !== 'newStrategy' && ( + <> + {label} + + Cost: {cost} STRK + + + Creator: {`${creator.slice(0, 2)}...${creator.slice(-4)}`} + Description: + {description} + Parameters: + + )} + + {paramsForStrategy.includes('email') && ( + handleParamChange('email', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + placeholder="Enter Email" + /> + )} + + {paramsForStrategy.includes('sector') && ( + handleParamChange('sector', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + > + Crypto + TSX Stocks + SP500 Stocks + + )} + + {paramsForStrategy.includes('symbol') && ( + handleParamChange('symbol', e.target.value.toUpperCase())} + fullWidth + required + sx={{ marginBottom: '20px' }} + disabled={!parameters.sector} + placeholder="Enter symbol" + /> + )} + + {paramsForStrategy.includes('openSd') && ( + handleParamChange('openSd', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + /> + )} + + {paramsForStrategy.includes('closeSd') && ( + handleParamChange('closeSd', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + /> + )} + + {paramsForStrategy.includes('isBuy') && ( + + Is Buy + handleParamChange('isBuy', e.target.checked)} + color="primary" + /> + + )} + + {paramsForStrategy.includes('symbol1') && ( + handleParamChange('symbol1', e.target.value.toUpperCase())} + fullWidth + required + sx={{ marginBottom: '20px' }} + disabled={!parameters.sector || parameters.sector !== 'crypto'} + placeholder="Enter symbol" + /> + )} + + {paramsForStrategy.includes('symbol2') && ( + handleParamChange('symbol2', e.target.value.toUpperCase())} + fullWidth + required + sx={{ marginBottom: '20px' }} + disabled={!parameters.sector || parameters.sector !== 'crypto'} + placeholder="Enter symbol" + /> + )} + + {paramsForStrategy.includes('startDate') && ( + handleParamChange('startDate', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + /> + )} + + {paramsForStrategy.includes('endDate') && ( + handleParamChange('endDate', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + /> + )} + + + {paramsForStrategy.includes('address') && ( + handleParamChange('address', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + placeholder="0x..." + /> + )} + + {paramsForStrategy.includes('tag') && ( + handleParamChange('tag', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + > + Low Frequency + Calculator + + )} + + {paramsForStrategy.includes('price') && ( + handleParamChange('price', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + placeholder="Enter price" + /> + )} + + {paramsForStrategy.includes('description') && ( + handleParamChange('description', e.target.value)} + fullWidth + multiline + rows={3} + required + sx={{ marginBottom: '20px' }} + placeholder="Describe your strategy" + /> + )} + + {paramsForStrategy.includes('link') && ( + handleParamChange('link', e.target.value)} + fullWidth + required + sx={{ marginBottom: '20px' }} + placeholder="https://github.com/..." + /> + )} + + {paramsForStrategy.includes('parameters') && ( + + )} + + + ); +}; + +export default Information; diff --git a/trivex_frontend/src/components/Result.jsx b/trivex_frontend/src/components/Result.jsx new file mode 100644 index 0000000..0d7b893 --- /dev/null +++ b/trivex_frontend/src/components/Result.jsx @@ -0,0 +1,96 @@ +import React, { useState } from 'react'; +import { + Box, Typography, List, ListItem, ListItemText, + Tabs, Tab, TableContainer, Table, TableHead, TableRow, TableCell, + TableBody, Paper +} from '@mui/material'; + +const ResultsAndHistory = ({ results, history }) => { + const [activeTab, setActiveTab] = useState(0); + + const handleTabChange = (event, newValue) => { + setActiveTab(newValue); + }; + + return ( + + + + + + + {activeTab === 0 && ( + + {results ? ( + typeof results === 'object' ? ( + + {Object.entries(results).map(([key, value], index) => ( + + + + ))} + + ) : ( + {results} + ) + ) : ( + No results available. + )} + + )} + + {activeTab === 1 && ( + + + + + + # + Strategy + Cost (STRK) + Time + + + + {history && history.length > 0 ? ( + history.slice().reverse().map((entry, index) => ( + + {history.length - index} + {entry.strategy} + {entry.amount} + {new Date(entry.datetime).toLocaleString()} + + )) + ) : ( + + No history available. + + )} + +
+
+
+ )} +
+ ); +}; + +export default ResultsAndHistory; diff --git a/trivex_frontend/src/components/Selection.jsx b/trivex_frontend/src/components/Selection.jsx new file mode 100644 index 0000000..742f2b1 --- /dev/null +++ b/trivex_frontend/src/components/Selection.jsx @@ -0,0 +1,100 @@ +import React from 'react'; +import { Box, Button, TableContainer, Paper, Table, TableHead, TableRow, TableCell, TableBody, Chip } from '@mui/material'; +import AddIcon from '@mui/icons-material/Add'; + +const getTagColor = (tag) => { + switch (tag) { + case 'Low Frequency': + return { bg: '#E0BBE4', color: '#000000' }; + case 'Calculator': + return { bg: '#C5CAE9', color: '#000000' }; + default: + return { bg: '#E0E0E0', color: '#000000' }; + } +}; + +const Selection = ({ selections, onSelect }) => { + return ( + + + + + + + + + + # + Name + Tag + Cost (STRK) + Creator + Select + + + + {selections.map((item, index) => { + const { bg, color } = getTagColor(item.tags); + return ( + + {index + 1} + {item.label} + + + + {item.cost} + {`${item.creator.slice(0, 2)}...${item.creator.slice(-4)}`} + + + + + ); + })} + +
+
+
+ ); +}; + +export default Selection; diff --git a/trivex_frontend/src/components/paramCreator.jsx b/trivex_frontend/src/components/paramCreator.jsx new file mode 100644 index 0000000..23c1c97 --- /dev/null +++ b/trivex_frontend/src/components/paramCreator.jsx @@ -0,0 +1,44 @@ +import React, { useState } from 'react'; +import { Box, IconButton, TextField, Stack } from '@mui/material'; +import AddIcon from '@mui/icons-material/Add'; + +const ParamCreator = ({params, setParams}) => { + + const handleAdd = () => { + setParams([...params, { parameter: '', type: '' }]); + }; + + const handleChange = (index, key, value) => { + const updated = [...params]; + updated[index][key] = value; + setParams(updated); + }; + + return ( + + {params.map((param, index) => ( + + + + + + handleChange(index, 'parameter', e.target.value)} + sx={{ flex: 1 }} + /> + + handleChange(index, 'type', e.target.value)} + sx={{ flex: 1 }} + /> + + ))} + + ); +}; + +export default ParamCreator; diff --git a/trivex_frontend/src/pages/StrategyPage.js b/trivex_frontend/src/pages/StrategyPage.js index 23a9858..82000b1 100644 --- a/trivex_frontend/src/pages/StrategyPage.js +++ b/trivex_frontend/src/pages/StrategyPage.js @@ -1,112 +1,136 @@ import React, { useState, useContext, useEffect} from 'react'; -import { Box, Typography, TextField, MenuItem, Button, Switch, List, ListItem, ListItemText} from '@mui/material'; +import { Box, Grid, Stack} from '@mui/material'; import axios from 'axios'; import {AppContext} from '../components/AppProvider'; import { Connected} from '../components/Alert'; import Loading from '../components/Loading'; import { AppContract } from '../components/AppContract'; +import Result from '../components/Result'; +import Information from '../components/Information'; +import Selection from '../components/Selection'; +import data from "../assets/data.json"; const StrategyPage = () => { - const [strategy, setStrategy] = useState(''); - const [sector, setSector] = useState(''); - const [symbol, setSymbol] = useState(''); - - const [openSd, setopenSd] = useState(1); - const [closeSd, setcloseSd] = useState(0.8); - const [isBuy, setIsBuy] = useState(true); + const [strategy, setStrategy] = useState(data[0].value); const [results, setResults] = useState(null); - const [list, setList] = useState(''); - const [email, setEmail] = useState(''); + const [loading, setLoading] = useState(false) + const [strategies, setStrategies] = useState(data); + const [selectedInfo, setSelectedInfo] = useState(data[0]); + const [history, setHistory] = useState([]); - const [symbol1, setSymbol1] = useState(''); - const [symbol2, setSymbol2] = useState(''); - const [startDate, setStartDate] = useState(''); - const [endDate, setEndDate] = useState(''); - const [loading, setLoading] = useState(false) - const [strategyPrice, setStrategyPrice] = useState(0); + const host = "http://localhost:8080"; - const host = "trivex-strategy-etbga3bramfwgfe9.canadacentral-01.azurewebsites.net"; + const parameterMap = { + newStrategy: ['email', 'address', 'price', 'tag', 'description', 'link', 'parameters'], + averageRebalance: ['sector', 'email'], + momentum: ['sector', 'email'], + standardDeviation: ['sector', 'symbol', 'openSd', 'closeSd', 'isBuy'], + coVariance: ['symbol1', 'symbol2', 'startDate', 'endDate'], + }; - const strategies = [ - { label: 'AverageRebalance', value: 'averageRebalance' }, - { label: 'Momentum', value: 'momentum' }, - { label: 'StandardDeviation', value: 'standardDeviation' }, - { label: 'CoVariance', value: 'coVariance' }, - ]; + const [parameters, setParameters] = useState({}); const info = useContext(AppContext); const contract = new AppContract(); + const handleParamChange = (param, value) => { + setParameters((prev) => ({ ...prev, [param]: value })); + }; + const handleRun = async (strategy) => { try { - const amount = await contract.getStrategyPrice(strategy); - const result = await contract.run_strategy(info.wallet.account, strategy, amount); - - console.log("Run Strategy Result:", result); - alert("Run strategy completed successfully!"); + const result = await contract.run_strategy(info.wallet.account, strategy, selectedInfo.cost); + console.log("Run Strategy Result:", result); } catch (error) { - console.error("An error occurred during the run strategy process:", error); + console.error("An error occurred during the run strategy process:", error); - if (error.message.includes("User abort")) { - alert("Transaction aborted by user."); - } else { - alert("An unexpected error occurred. Please try again."); - } + if (error.message.includes("User abort")) { + alert("Transaction aborted by user."); + } else { + alert("An unexpected error occurred. Please try again."); + } } }; - const handleStrategyPrice = async (strategy) => { - try { - const amount = await contract.getStrategyPrice(strategy); - setStrategyPrice(amount); - } catch (error) { - alert("An unexpected error occurred. Please try again."); - } -}; + const handleSelect = (item) => { + setStrategy(item.value); + const index = data.findIndex(strategy => strategy.value === item.value); + setSelectedInfo(data[index]); + console.log(`You selected the strategy: ${item.value} at index: ${index}`); + }; + + const refreshData = async () => { + const values = await contract.getUserHistory(info.walletAddress); + setHistory(values); + info.setRouteTrigger(true); + }; - const handleStartAlgo = async () => { + const handleRunStrategy = async () => { if (!strategy) { - alert('Please select both a strategy.'); + alert('Please select a strategy.'); return; } - + setLoading(true); await handleRun(strategy); - - switch (strategy) { - case 'averageRebalance': - averageRebalance(list, email); - console.log(`Running Average Rebalance strategy in sector: ${sector}`); - break; - case 'momentum': - momentum(list, email); - console.log(`Running Momentum strategy in sector: ${sector}`); - break; + try { + let result; + switch (strategy) { + case 'averageRebalance': + result = await averageRebalance(parameters.sector, parameters.email); + console.log('Running Average Rebalance strategy'); + break; + + case 'momentum': + result = await momentum(parameters.sector, parameters.email); + console.log('Running Momentum strategy'); + break; - case 'standardDeviation': - standardDeviation(symbol, openSd, closeSd, isBuy); - console.log(`Running Standard Deviation strategy in sector: ${sector}`); - break; + case 'standardDeviation': + result = await standardDeviation( + parameters.sector, + parameters.symbol, + parameters.openSd, + parameters.closeSd, + parameters.isBuy + ); + console.log('Running Standard Deviation strategy'); + break; - case 'coVariance': - coVariance(symbol1, symbol2, startDate, endDate); - console.log(`Running Co-Variance strategy in sector: ${sector}`); - break; + case 'coVariance': + result = await coVariance( + parameters.symbol1, + parameters.symbol2, + parameters.startDate, + parameters.endDate + ); + console.log('Running Co-Variance strategy'); + break; + + default: + console.error('Unknown strategy selected.'); + return; + } - default: - console.error('Unknown strategy selected.'); + setResults(result); + alert(`Strategy Runned: ${strategy}`); + + await refreshData(); + } catch (error) { + console.error('Error running strategy:', error); + alert('An error occurred while starting the algorithm. Check console for details.'); + } finally { + setLoading(false); } - - setLoading(false); - alert(`Algorithm started with strategy: ${strategy} in sector: ${sector}`); }; - - const standardDeviation = async (symbol, openSd, closeSd, isBuy) => { + + const standardDeviation = async (sector, symbol, openSd, closeSd, isBuy) => { try { - const res = await axios.post(`https://${host}/standardDeviation`, { + const res = await axios.post(`${host}/standardDeviation`, { + sector, symbol, openSd, closeSd, @@ -124,7 +148,7 @@ const StrategyPage = () => { const coVariance= async (symbol1, symbol2, startDate, endDate) => { try { - const res = await axios.post(`https://${host}/coVariance`, { + const res = await axios.post(`${host}/coVariance`, { symbol1, symbol2, start_date: new Date(startDate), @@ -139,11 +163,11 @@ const StrategyPage = () => { } }; - const averageRebalance = async (list, email) => { + const averageRebalance = async (sector, email) => { try { - const res = await axios.post(`https://${host}/averageRebalance`, { - list, + const res = await axios.post(`${host}/averageRebalance`, { + sector, email }); @@ -154,11 +178,11 @@ const StrategyPage = () => { } }; - const momentum = async (list, email) => { + const momentum = async (sector, email) => { try { - const res = await axios.post(`https://${host}/momentum`, { - list, + const res = await axios.post(`${host}/momentum`, { + sector, email }); @@ -170,242 +194,26 @@ const StrategyPage = () => { }; useEffect(() => { - if (strategy) { - handleStrategyPrice(strategy); + if (info.walletAddress && !info.routeTrigger) { + refreshData(); } - }, [strategy]); + }, [info, refreshData]); if(info.walletAddress != null){ return ( - <> - {loading && } - - - - setStrategy(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - > - {strategies.map((strat) => ( - - {strat.label} - - ))} - - - {(strategy === 'averageRebalance' || strategy === 'momentum')&& ( - <> - setList(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - > - Crypto - TSX - SP500 - - - setEmail(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - placeholder="Enter Email" - /> - - )} - - {strategy === 'standardDeviation' && ( - <> - setSector(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - > - Crypto - TSX Stocks - SP500 Stocks - - - setSymbol(e.target.value.toUpperCase())} - fullWidth - required - sx={{ marginBottom: '20px' }} - disabled={!sector || sector !== 'crypto'} - placeholder="Enter symbol" - /> - - )} - {strategy === 'standardDeviation' && sector === 'crypto' && ( - <> - - Parameters: - - setopenSd(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - /> - setcloseSd(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - /> - - Is Buy - setIsBuy(!isBuy)} - color="primary" - /> - - - )} - - {strategy === 'coVariance' && ( - <> - setSector(e.target.value)} - fullWidth - required - sx={{ marginBottom: '20px' }} - > - Crypto - TSX Stocks - SP500 Stocks - - - setSymbol1(e.target.value.toUpperCase())} - fullWidth - required - sx={{ marginBottom: '20px' }} - disabled={!sector || sector !== 'crypto'} - placeholder="Enter symbol" - /> - setSymbol2(e.target.value.toUpperCase())} - fullWidth - required - sx={{ marginBottom: '20px' }} - disabled={!sector || sector !== 'crypto'} - placeholder="Enter symbol" - /> - - - setStartDate(e.target.value)} - fullWidth - required - /> - setEndDate(e.target.value)} - fullWidth - required - /> - - - )} - - - Cost: {strategyPrice} STRK - - - - - {results && ( - - - Results - - {typeof results === "object" ? ( - - {Object.entries(results).map(([key, value], index) => ( - - - - ))} - - ) : ( - {results} - )} - - )} - - + + + + + + + + + + + + + ); }else{ return From 9332d4beccf78a1db4027adba9b8df75a58eee99 Mon Sep 17 00:00:00 2001 From: JY20 Date: Wed, 21 May 2025 16:14:10 -0400 Subject: [PATCH 2/7] adding the strategy APIs --- strategy_api/.deployment | 2 + .../__pycache__/alert.cpython-312.pyc | Bin 0 -> 4355 bytes .../__pycache__/marketData.cpython-312.pyc | Bin 0 -> 10269 bytes strategy_api/components/alert.py | 66 ++ strategy_api/components/marketData.py | 179 +++++ strategy_api/config/config.ini | 15 + strategy_api/logs/test.log | 0 strategy_api/main.py | 154 ++++ strategy_api/requirements.txt | 9 + strategy_api/results/sp500.txt | 502 ++++++++++++ strategy_api/results/tokens.csv | 83 ++ strategy_api/results/tsx.txt | 724 ++++++++++++++++++ strategy_api/startup.sh | 1 + .../averageRebalance.cpython-312.pyc | Bin 0 -> 2601 bytes .../__pycache__/coVariance.cpython-312.pyc | Bin 0 -> 1987 bytes .../__pycache__/momentum.cpython-312.pyc | Bin 0 -> 3798 bytes .../standardDeviation.cpython-312.pyc | Bin 0 -> 4110 bytes strategy_api/strategy/averageRebalance.py | 47 ++ strategy_api/strategy/coVariance.py | 27 + strategy_api/strategy/momentum.py | 69 ++ strategy_api/strategy/standardDeviation.py | 69 ++ .../__pycache__/alertTrader.cpython-312.pyc | Bin 0 -> 7617 bytes strategy_api/trader/alertTrader.py | 105 +++ 23 files changed, 2052 insertions(+) create mode 100644 strategy_api/.deployment create mode 100644 strategy_api/components/__pycache__/alert.cpython-312.pyc create mode 100644 strategy_api/components/__pycache__/marketData.cpython-312.pyc create mode 100644 strategy_api/components/alert.py create mode 100644 strategy_api/components/marketData.py create mode 100644 strategy_api/config/config.ini create mode 100644 strategy_api/logs/test.log create mode 100644 strategy_api/main.py create mode 100644 strategy_api/requirements.txt create mode 100644 strategy_api/results/sp500.txt create mode 100644 strategy_api/results/tokens.csv create mode 100644 strategy_api/results/tsx.txt create mode 100644 strategy_api/startup.sh create mode 100644 strategy_api/strategy/__pycache__/averageRebalance.cpython-312.pyc create mode 100644 strategy_api/strategy/__pycache__/coVariance.cpython-312.pyc create mode 100644 strategy_api/strategy/__pycache__/momentum.cpython-312.pyc create mode 100644 strategy_api/strategy/__pycache__/standardDeviation.cpython-312.pyc create mode 100644 strategy_api/strategy/averageRebalance.py create mode 100644 strategy_api/strategy/coVariance.py create mode 100644 strategy_api/strategy/momentum.py create mode 100644 strategy_api/strategy/standardDeviation.py create mode 100644 strategy_api/trader/__pycache__/alertTrader.cpython-312.pyc create mode 100644 strategy_api/trader/alertTrader.py diff --git a/strategy_api/.deployment b/strategy_api/.deployment new file mode 100644 index 0000000..6278331 --- /dev/null +++ b/strategy_api/.deployment @@ -0,0 +1,2 @@ +[config] +SCM_DO_BUILD_DURING_DEPLOYMENT=true \ No newline at end of file diff --git a/strategy_api/components/__pycache__/alert.cpython-312.pyc b/strategy_api/components/__pycache__/alert.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72ff4524e1d78e0d4383b368ad83080dc4c5955e GIT binary patch literal 4355 zcmcf_ZA=qs`kl^9zY7Qz3W8RJ!zzLz5@n4W1^fUhABDS357Vukp-wyP;LOy!A}0I8 zTp;U4$ZkT3CXnp?@PfIxiOHJW{op6bZ7!XyMl!*i$^F`YEd02{KX=bN(`hTZX3gE+ zoAjCY<9VNt_xX6Aw|{fF>-eC1un`Uh~bFjj+82~C?pN#1SrK8U969W)DiP7`n{PJ?b5`Rx9w zs@ArM<_Y;vE0^TdMkXGb6a^*}>^{|d@!08$o#zM6pY9mwy?FkD|JNg*oDN*@cY+hy z!zuZCNEYI3Qg!qu!W^%Am1>iP5R1psYobLh3&>(vW~1r+s$){*B5a7~5}d4>!x5Pi zl0KJ+?WLM^X;eyN!;FYs2c~$AP0A`6Wo4C?CVALpl?9ETq>>yg*)@t+G=iigi($+T(>h2ZGqP-v=5pEJhTeWlLNEZ>LG32Q@`X`bS#xGmOpeozLoQI zzwlgEJeSuF<~)8taBb8zWSFJ+Vth$h6tb;nS6#Wi{#@N4td(z6*Jc`*jw~KoYFli} z9`1U2DOcB-J@8X53#ihz&4~6rvOcg>3P67(kjM zZd20~V=88iX_FBvQ-Hyc7*0W)0v;K|;_qlH`Ed`r3fXKNM7>SlHUmwngeLt4O&ZfI zSuI3-2``E<>s;@)P&m81BSS%~6_PN4;P@O{?_HFrQ*2 zoRhqI(=FoCj5Hu5z*|#^sVdz!-~igsxpE5p80|0CdJ+Shb^&L$G=RJcX7EIeGd`PcdtrQds>tlDy$V zmb?$eKnAS$j`q&`$NImP#_)Xt-Tm_~p)F%8>U{Sf5G@qU=n+dX_I!_guU*NVc7^l$ z340pa{6cnpOA>=$QAg14|7F+rN@Ga&U)c4%^xtDw6vMagj`mhQboj*sfHUPfpGtcJ zT3(a7>_6b!M73S#qStx&$>Kp6i;Wth_qUf|$~(eI@vHW!N{r(bVc?b0iE9Gi+TA*r$D~Ddo(-+KpW2aISqssUK0?BXd1~oULzB+%5AxuiT!6{`vkF z?ncGkm~A@!*Mm>lzZ_PYdRE7jroQh^e3#0Og|eTr%GgBqI+q)a<@)1FQ~bG`e^uem zP!9sjyYB~~CZQG2(MORdO;7EsCzVr|*N*4f2Xd``#p7R-6;D8^2+UKPyRcH5m5}o1 zs9C3WuVgFsE7tv3XD`-ytf2FrxBA`&l~ouhGgGe|Bg% z*Ey1F4=D8k#U1!yr9aJvCzP>hmW$;E!b^w1d)|=` zV}BUZ|l^%v!`XdNEwK?P!qY%-E$%vdl1*uX5^# zPyS}~;?RZRW5)+hclY<544xP{-Zwnd9_;TOQt3ok5|ZLR*bH@~7H5_OD@oxf>!YBg zyooD)o5)7ENv-I&z&m7u<5`tr!g5%(<#8`F5URKsRcR>wld@Qe`%vaXh-1OT6PN*A zjAlJ(FdH+Q@*LVm zc2C*NrA-fV?Yh@L+yBB@uQ=;7pDf3fhW6*q6F)Wpajh`&`>gm?kqjr;P)N0hLJ5IM z@wo2{g>Iz6yuKpVgKVM~gH{YWF~G^}Pe>!9>xMIxhyk{?gp2h%Xv<`w8@4J5djFQ$ zOgC>;cNS?Ht!H$B i&x)5}4!_qWY_Uy}Ac&V}?@QG5FX}AOv4sF=+x`O#qp7U` literal 0 HcmV?d00001 diff --git a/strategy_api/components/__pycache__/marketData.cpython-312.pyc b/strategy_api/components/__pycache__/marketData.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..20c5ccedc1194adac215e169e0c92dea3fa23591 GIT binary patch literal 10269 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 end_time: + break + + return [float(entry[4]) for entry in all_data] + + def fetch_stock_data(self, symbol, start_date: date, end_date: date): + url = f"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol={symbol}&apikey={self.ALPHA_VANTAGE_API_KEY}&outputsize=full" + try: + response = requests.get(url) + response.raise_for_status() + data = response.json() + + if "Time Series (Daily)" not in data: + self.logger.error(f"Alpha Vantage API error: {data.get('Note', 'No data returned.')}") + raise ValueError(f"No stock data available for {symbol}") + + prices = [] + for date_str, info in data["Time Series (Daily)"].items(): + date_dt = datetime.strptime(date_str, "%Y-%m-%d").date() + if start_date <= date_dt <= end_date: + prices.append(float(info["4. close"])) + + if not prices: + self.logger.error(f"No stock data found for {symbol} between {start_date} and {end_date}") + raise ValueError(f"No stock data available for {symbol}") + + return list(reversed(prices)) + + except requests.exceptions.RequestException as e: + self.logger.error(f"Failed fetching stock data from Alpha Vantage for {symbol}: {str(e)}") + raise + + end_time = int(datetime.utcnow().timestamp() * 1000) + start_time = int((datetime.utcnow() - timedelta(days=days)).timestamp() * 1000) + params = {"symbol": symbol, "interval": interval, "startTime": start_time, "endTime": end_time, "limit": 1000} + all_data = [] + while True: + response = requests.get(self.API_ENDPOINT, params=params) + response.raise_for_status() + data = response.json() + if not data: + break + all_data.extend(data) + params["startTime"] = int(data[-1][0]) + 1 + if params["startTime"] > end_time: + break + return [float(entry[4]) for entry in all_data] + + def fetch_market_data(self, interval, start_date: date, end_date: date): + symbol_details = self.symbol.split("-") + if len(symbol_details) == 2 and (symbol_details[1] == "USDT" or symbol_details[1] == "USDC" or symbol_details[1] == "USD"): + return self.fetch_crypto_data(symbol_details[0] + "USDC", interval, start_date, end_date) + else: + return self.fetch_stock_data(symbol_details[0], start_date, end_date) + + def get_current_crypto_price(self, symbol): + url = "https://api.binance.com/api/v3/ticker/price" + params = {"symbol": symbol} + response = requests.get(url, params=params) + return float(response.json()["price"]) + + def get_current_stock_price(self, symbol): + url = "https://www.alphavantage.co/query" + params = { + "function": "GLOBAL_QUOTE", + "symbol": symbol, + "apikey": self.ALPHA_VANTAGE_API_KEY + } + response = requests.get(url, params=params) + response.raise_for_status() + data = response.json() + return float(data["Global Quote"]["05. price"]) + + def get_current_price(self): + if self.sector == "crypto": + if "USDC" not in self.symbol: + self.symbol = self.symbol.split("-")[0] + "USDC" + return self.get_current_crypto_price(self.symbol) + elif self.sector == "tsx": + self.symbol = self.symbol + ".TO" + return self.get_current_stock_price(self.symbol) + elif self.sector == "sp500": + return self.get_current_stock_price(self.symbol) + else: + raise ValueError("Invalid sector provided.") + + def fetch_crypto_data_days(self, symbol, interval, days): + end_time = int(datetime.utcnow().timestamp() * 1000) + start_time = int((datetime.utcnow() - timedelta(days=days)).timestamp() * 1000) + params = {"symbol": symbol, "interval": interval, "startTime": start_time, "endTime": end_time, "limit": 1000} + all_data = [] + while True: + response = requests.get(self.API_ENDPOINT, params=params) + response.raise_for_status() + data = response.json() + if not data: + break + all_data.extend(data) + params["startTime"] = int(data[-1][0]) + 1 + if params["startTime"] > end_time: + break + + return [float(entry[4]) for entry in all_data] + + def fetch_stock_data_days(self, symbol, days, interval="60min"): + url = "https://www.alphavantage.co/query" + params = { + "function": "TIME_SERIES_INTRADAY", + "symbol": symbol, + "interval": interval, + "apikey": self.ALPHA_VANTAGE_API_KEY, + "outputsize": "full" + } + response = requests.get(url, params=params) + response.raise_for_status() + data = response.json() + + time_series_key = f"Time Series ({interval})" + if time_series_key not in data: + raise ValueError(f"Failed to fetch data for {symbol}, check symbol or API limit") + + all_prices = [] + end_datetime = datetime.utcnow() + start_datetime = end_datetime - timedelta(days=days) + + for timestamp, values in data[time_series_key].items(): + ts_datetime = datetime.strptime(timestamp, "%Y-%m-%d %H:%M:%S") + if start_datetime <= ts_datetime <= end_datetime: + all_prices.append(float(values["4. close"])) + + return list(reversed(all_prices)) + + def fetch_market_data_days(self, interval, days): + if self.sector == "crypto": + if "USDC" not in self.symbol: + self.symbol = self.symbol + "USDC" + return self.fetch_crypto_data_days(self.symbol, interval, days) + elif self.sector == "tsx": + self.symbol = self.symbol + ".TO" + return self.fetch_stock_data_days(self.symbol, days) + elif sector == "sp500": + return self.fetch_stock_data_days(self.symbol, days) + else: + raise ValueError("Invalid sector provided.") + + def get_trading_days_back(self, start_date, num_days): + current_date = datetime.strptime(start_date, '%Y-%m-%d') + while num_days > 0: + current_date -= timedelta(days=1) + if current_date.weekday() in [5, 6]: + continue + num_days -= 1 + return current_date.strftime('%Y-%m-%d') diff --git a/strategy_api/config/config.ini b/strategy_api/config/config.ini new file mode 100644 index 0000000..8fccfd2 --- /dev/null +++ b/strategy_api/config/config.ini @@ -0,0 +1,15 @@ +[EmailConfig] +to_emails=jimmyyan1337@gmail.com +; to_emails=jimmyyan1337@gmail.com,tyblele@gmail.com +email_interval=30 + +[StrategyConfig] +price_limit=5 +action=remove + +[LoggerConfig] +level=INFO + +[Trading] +short=True +long=True \ No newline at end of file diff --git a/strategy_api/logs/test.log b/strategy_api/logs/test.log new file mode 100644 index 0000000..e69de29 diff --git a/strategy_api/main.py b/strategy_api/main.py new file mode 100644 index 0000000..9cc2233 --- /dev/null +++ b/strategy_api/main.py @@ -0,0 +1,154 @@ +from fastapi import FastAPI, HTTPException +import uvicorn +import logging +from datetime import datetime +import csv +from fastapi.concurrency import run_in_threadpool +from pydantic import BaseModel +from datetime import date +from strategy.standardDeviation import standardDeviation +from strategy.coVariance import coVariance +from trader.alertTrader import alertTrader +from fastapi.middleware.cors import CORSMiddleware + +dateCurrent = datetime.now().strftime("%Y_%m_%d") +logging.basicConfig(filename="./logs/"+str(dateCurrent)+"_strategyAPI.log", level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +logger = logging.getLogger(__name__) + +app = FastAPI() + +class sdRequest(BaseModel): + sector: str + symbol: str + openSd: float + closeSd: float + is_buy: bool + +class cvRequest(BaseModel): + symbol1: str + symbol2: str + start_date: date + end_date: date + +class arRequest(BaseModel): + sector: str + email: str + +origins = ["*"] + +app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +def get_crypto_list(): + try: + with open("./results/tokens.csv", mode="r") as file: + reader = csv.reader(file) + next(reader, None) + return {row[1]: int(row[2].replace("x", "")) for row in reader if len(row) > 2} + except Exception as e: + logger.error(f"Error reading crypto list: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to retrieve crypto list.") + +def get_symbols_from_file(filepath: str, col_index: int): + try: + with open(filepath, mode="r") as file: + lines = file.readlines() + return {line.split()[col_index]: 1 for line in lines if len(line.split()) > col_index} + except Exception as e: + logger.error(f"Error reading symbols from {filepath}: {str(e)}") + raise HTTPException(status_code=500, detail=f"Failed to retrieve symbols from {filepath}.") + +@app.get("/symbols/{sector}") +async def get_symbols(sector: str): + try: + if (sector.lower() == "crypto"): + return await run_in_threadpool(get_crypto_list) + elif (sector.lower() == "tsx"): + return await run_in_threadpool(get_symbols_from_file, "./results/tsx.txt", 1) + elif (sector.lower() == "sp500"): + return await run_in_threadpool(get_symbols_from_file, "./results/sp500.txt", 1) + else: + return {"error": "Invalid sector. Choose from 'crypto', 'tsx', or 'sp500'."} + except HTTPException as e: + raise e + except Exception as e: + logger.error(f"Unhandled error: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to retrieve symbols.") + +@app.post("/standardDeviation") +async def executeSD(request: sdRequest): + try: + strategy = standardDeviation(logger, request.sector, request.symbol) + open_order_signal = await run_in_threadpool(strategy.next, request.sector, request.symbol, request.openSd) + close_order_signal = await run_in_threadpool(strategy.closeSignal, request.sector, request.symbol, request.is_buy, request.closeSd) + result = {"Open Order Signal": open_order_signal, "Close Open Signal": close_order_signal} + return result + except Exception as e: + logger.error(f"Error executing strategy SD: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to execute strategy SD.") + +@app.post("/coVariance") +async def executeCV(request: cvRequest): + try: + strategy = coVariance(logger) + covariance = await run_in_threadpool(strategy.calculate_covariance, request.symbol1, request.symbol2, request.start_date, request.end_date) + result = {"Symbol1": request.symbol1, "Symbol2": request.symbol2, "CoVariance": covariance} + return result + except Exception as e: + logger.error(f"Error executing strategy CV: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to execute strategy CV.") + +@app.post("/averageRebalance") +async def executeAR(request: arRequest): + try: + symbols = [] + if (request.sector.lower() == "crypto"): + symbols = await run_in_threadpool(get_crypto_list) + symbols = list(symbols.keys()) + elif (request.sector.lower() == "tsx"): + symbols = await run_in_threadpool(get_symbols_from_file, "./results/tsx.txt", 1) + elif (request.sector.lower() == "sp500"): + symbols = await run_in_threadpool(get_symbols_from_file, "./results/sp500.txt", 1) + else: + return {"error": "Invalid sector. Choose from 'crypto', 'tsx', or 'sp500'."} + + alert = alertTrader(symbols) + await run_in_threadpool(alert.runAverageRebalanceAlert, request.sector, request.email) + + result = "Email with results will be sent to: "+str(request.email) + return result + except Exception as e: + logger.error(f"Error executing strategy AR: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to execute strategy AR.") + +@app.post("/momentum") +async def executeM(request: arRequest): + try: + symbols = [] + if (request.sector.lower() == "crypto"): + symbols = await run_in_threadpool(get_crypto_list) + symbols = list(symbols.keys()) + elif (request.sector.lower() == "tsx"): + symbols = await run_in_threadpool(get_symbols_from_file, "./results/tsx.txt", 1) + elif (request.sector.lower() == "sp500"): + symbols = await run_in_threadpool(get_symbols_from_file, "./results/sp500.txt", 1) + else: + return {"error": "Invalid sector. Choose from 'crypto', 'tsx', or 'sp500'."} + + alert = alertTrader(symbols) + await run_in_threadpool(alert.runMomentumAlert, request.sector, request.email) + + result = "Email with results will be sent to: "+str(request.email) + return result + except Exception as e: + logger.error(f"Error executing strategy M: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to execute strategy M.") + +if __name__ == '__main__': + uvicorn.run('main:app', host='0.0.0.0', port=8000) + diff --git a/strategy_api/requirements.txt b/strategy_api/requirements.txt new file mode 100644 index 0000000..5bd7e99 --- /dev/null +++ b/strategy_api/requirements.txt @@ -0,0 +1,9 @@ +fastapi +uvicorn +jinja2 +python-multipart +trycourier==5.0.0 +yfinance==0.2.31 +pandas +pyodbc +matplotlib \ No newline at end of file diff --git a/strategy_api/results/sp500.txt b/strategy_api/results/sp500.txt new file mode 100644 index 0000000..0aa08ab --- /dev/null +++ b/strategy_api/results/sp500.txt @@ -0,0 +1,502 @@ +1 AAPL 3,902.91B +2 NVDA 3,433.99B +3 MSFT 3,266.37B +4 GOOG 2,408.66B +5 AMZN 2,408.46B +6 GOOGL 2,400.58B +7 META 1,534.26B +8 TSLA 1,483.95B +9 AVGO 1,123.47B +10 BRK.B 988.76B +11 WMT 744.53B +12 LLY 716.45B +13 JPM 682.19B +14 V 628.39B +15 MA 491.69B +16 ORCL 479.43B +17 XOM 467.64B +18 UNH 465.76B +19 COST 425.62B +20 NFLX 398.44B +21 PG 397.86B +22 HD 393.51B +23 JNJ 351.15B +24 BAC 340.52B +25 CRM 329.62B +26 ABBV 318.09B +27 KO 270.70B +28 TMUS 258.80B +29 CVX 258.49B +30 MRK 251.57B +31 CSCO 238.37B +32 WFC 238.36B +33 NOW 228.10B +34 ACN 226.19B +35 BX 214.62B +36 AXP 213.77B +37 PEP 212.09B +38 MCD 210.68B +39 IBM 207.50B +40 AMD 204.94B +41 MS 204.70B +42 DIS 203.84B +43 LIN 202.73B +44 TMO 202.33B +45 ABT 199.05B +46 ADBE 197.18B +47 GS 191.86B +48 ISRG 191.28B +49 PM 191.10B +50 PLTR 187.66B +51 GE 185.60B +52 INTU 180.70B +53 CAT 177.46B +54 QCOM 177.05B +55 TXN 175.55B +56 BKNG 169.55B +57 VZ 167.54B +58 DHR 166.66B +59 T 164.67B +60 BLK 163.37B +61 SPGI 156.46B +62 RTX 155.50B +63 PFE 151.54B +64 NEE 149.93B +65 HON 148.84B +66 CMCSA 146.94B +67 ANET 144.43B +68 PGR 142.49B +69 AMGN 142.17B +70 SYK 141.35B +71 LOW 141.29B +72 UNP 139.29B +73 TJX 138.82B +74 AMAT 137.00B +75 SCHW 137.00B +76 KKR 135.53B +77 ETN 134.98B +78 C 134.28B +79 BSX 134.22B +80 BA 134.00B +81 UBER 129.94B +82 COP 125.62B +83 PANW 124.36B +84 ADP 120.79B +85 FI 119.16B +86 DE 117.55B +87 BMY 117.15B +88 GILD 117.09B +89 LMT 115.70B +90 NKE 114.30B +91 CB 111.47B +92 ADI 108.24B +93 UPS 107.75B +94 MMC 105.12B +95 VRTX 105.12B +96 MDT 104.56B +97 SBUX 101.94B +98 MU 99.47B +99 PLD 98.62B +100 GEV 95.73B +101 LRCX 95.00B +102 EQIX 91.66B +103 SO 91.12B +104 MO 90.62B +105 CRWD 90.10B +106 PYPL 88.47B +107 INTC 87.99B +108 MCO 87.06B +109 KLAC 87.01B +110 SHW 86.97B +111 ELV 86.49B +112 APH 86.39B +113 ICE 86.39B +114 AMT 86.31B +115 CME 86.30B +116 TT 85.49B +117 CMG 84.87B +118 CDNS 84.63B +119 ABNB 84.34B +120 DUK 84.18B +121 PH 84.00B +122 DELL 83.31B +123 WM 82.43B +124 MDLZ 80.23B +125 MAR 79.59B +126 MSI 78.96B +127 WELL 78.83B +128 AON 78.20B +129 CI 77.90B +130 SNPS 77.31B +131 HCA 77.16B +132 PNC 77.01B +133 REGN 76.87B +134 ITW 76.53B +135 USB 76.18B +136 CTAS 76.00B +137 CL 75.48B +138 FTNT 74.97B +139 ZTS 74.31B +140 MCK 73.51B +141 TDG 73.19B +142 GD 73.00B +143 EMR 72.29B +144 CEG 71.87B +145 MMM 70.99B +146 ORLY 70.53B +147 COF 69.48B +148 NOC 68.64B +149 ECL 68.17B +150 EOG 67.96B +151 WMB 66.56B +152 APD 65.83B +153 BDX 65.62B +154 FDX 65.47B +155 SPG 65.09B +156 ADSK 64.72B +157 RCL 64.61B +158 RSG 63.93B +159 AJG 63.28B +160 CSX 62.81B +161 CARR 62.31B +162 HLT 61.74B +163 DLR 60.99B +164 KMI 60.72B +165 TGT 60.67B +166 OKE 59.70B +167 GM 58.84B +168 TFC 58.40B +169 AFL 57.35B +170 CPRT 56.95B +171 MET 56.95B +172 BK 56.75B +173 ROP 56.63B +174 FCX 56.36B +175 CHTR 56.10B +176 SRE 55.71B +177 CVS 55.68B +178 PCAR 55.15B +179 TRV 55.14B +180 AZO 55.10B +181 NXPI 54.75B +182 NSC 53.83B +183 JCI 53.63B +184 SLB 53.28B +185 GWW 53.13B +186 PSA 52.82B +187 AMP 52.27B +188 ALL 51.77B +189 FICO 51.25B +190 MNST 51.07B +191 PAYX 50.91B +192 ROST 49.65B +193 AEP 49.19B +194 PWR 48.83B +195 VST 48.77B +196 CMI 48.54B +197 AXON 48.14B +198 URI 47.74B +199 MSCI 47.64B +200 LULU 46.97B +201 O 46.74B +202 PSX 46.08B +203 FANG 46.07B +204 HWM 45.52B +205 AIG 45.44B +206 NDAQ 45.36B +207 DHI 45.30B +208 D 45.17B +209 OXY 45.15B +210 KR 44.74B +211 EW 44.46B +212 DFS 44.36B +213 FIS 44.33B +214 KMB 44.08B +215 KDP 44.02B +216 COR 43.98B +217 TEL 43.53B +218 MPC 43.50B +219 NEM 43.42B +220 PCG 43.22B +221 FAST 43.03B +222 PEG 42.74B +223 AME 42.57B +224 PRU 42.46B +225 KVUE 41.34B +226 GLW 41.01B +227 STZ 40.92B +228 GRMN 40.52B +229 LHX 40.46B +230 BKR 40.36B +231 DAL 40.11B +232 HES 40.09B +233 F 39.82B +234 CBRE 39.68B +235 CCI 39.55B +236 CTVA 39.51B +237 CTSH 39.41B +238 TRGP 39.41B +239 VRSK 39.33B +240 XEL 39.17B +241 EA 39.13B +242 A 38.87B +243 ODFL 38.76B +244 SYY 38.08B +245 IT 37.79B +246 EXC 37.70B +247 YUM 37.67B +248 VLO 37.62B +249 LVS 37.62B +250 OTIS 37.55B +251 LEN 37.43B +252 IR 37.22B +253 KHC 37.05B +254 IQV 36.30B +255 GEHC 36.26B +256 GIS 35.20B +257 VMC 34.91B +258 ACGL 34.73B +259 HSY 34.50B +260 RMD 34.13B +261 WAB 34.01B +262 IDXX 33.87B +263 CCL 33.73B +264 UAL 33.27B +265 EXR 32.99B +266 ROK 32.99B +267 ETR 32.69B +268 MLM 32.59B +269 TTWO 32.56B +270 EFX 32.38B +271 DD 32.29B +272 RJF 32.09B +273 HIG 32.05B +274 WTW 31.83B +275 AVB 31.72B +276 MTB 31.68B +277 DECK 31.60B +278 MCHP 31.45B +279 HPQ 31.36B +280 DXCM 31.34B +281 EIX 31.07B +282 ED 31.03B +283 IRM 30.98B +284 VICI 30.82B +285 HUM 30.77B +286 LYV 30.74B +287 CNC 30.71B +288 EBAY 30.55B +289 MPWR 30.22B +290 WEC 30.07B +291 ANSS 29.98B +292 CSGP 29.91B +293 BRO 29.70B +294 TSCO 29.11B +295 STT 29.10B +296 GDDY 29.02B +297 ON 28.91B +298 FITB 28.86B +299 HPE 28.79B +300 CAH 28.76B +301 GPN 28.75B +302 XYL 28.70B +303 KEYS 28.38B +304 SW 28.25B +305 EQR 28.23B +306 DOW 28.16B +307 PPG 28.03B +308 K 27.86B +309 NUE 27.57B +310 EL 26.95B +311 TPL 26.68B +312 EQT 26.60B +313 BR 26.57B +314 MTD 26.30B +315 DOV 26.11B +316 CHD 26.08B +317 FTV 26.02B +318 TROW 26.01B +319 SYF 25.94B +320 WBD 25.88B +321 TYL 25.65B +322 VLTO 25.59B +323 NVR 25.31B +324 VTR 25.07B +325 DTE 25.01B +326 AWK 24.50B +327 EXPE 24.34B +328 AEE 24.26B +329 ADM 24.23B +330 NTAP 24.16B +331 CPAY 24.14B +332 WST 24.10B +333 LYB 24.07B +334 PPL 24.06B +335 HBAN 23.91B +336 HAL 23.58B +337 CDW 23.50B +338 HUBB 23.19B +339 FE 22.99B +340 FOXA 22.83B +341 PHM 22.71B +342 CINF 22.71B +343 ROL 22.57B +344 PTC 22.48B +345 WRB 22.37B +346 FOX 22.16B +347 WAT 22.16B +348 TDY 22.14B +349 ERIE 22.10B +350 DRI 21.93B +351 RF 21.83B +352 SBAC 21.78B +353 ATO 21.77B +354 IFF 21.76B +355 BIIB 21.72B +356 ZBH 21.36B +357 WDC 21.33B +358 TER 21.17B +359 CNP 21.11B +360 ES 20.99B +361 MKC 20.94B +362 LUV 20.60B +363 STE 20.60B +364 TSN 20.55B +365 NTRS 20.54B +366 WY 20.53B +367 DVN 20.52B +368 PKG 20.40B +369 ZBRA 20.40B +370 CBOE 20.35B +371 CLX 20.23B +372 ULTA 20.19B +373 SMCI 20.10B +374 INVH 20.05B +375 CMS 19.96B +376 FSLR 19.94B +377 LDOS 19.43B +378 CFG 19.39B +379 VRSN 19.36B +380 LH 19.19B +381 IP 19.15B +382 ESS 19.10B +383 BF.B 18.85B +384 NRG 18.84B +385 STX 18.72B +386 FDS 18.67B +387 BBY 18.57B +388 MAA 18.56B +389 COO 18.52B +390 L 18.47B +391 PODD 18.46B +392 CTRA 18.22B +393 SNA 18.13B +394 STLD 17.82B +395 PFG 17.79B +396 TRMB 17.55B +397 ARE 17.38B +398 HRL 17.35B +399 JBHT 17.30B +400 KEY 17.22B +401 NI 17.21B +402 GEN 17.16B +403 BLDR 17.13B +404 DGX 17.12B +405 PNR 16.91B +406 MOH 16.88B +407 J 16.86B +408 OMC 16.85B +409 BALL 16.76B +410 JBL 16.67B +411 NWS 16.63B +412 HOLX 16.49B +413 DG 16.42B +414 GPC 16.31B +415 UDR 16.27B +416 IEX 16.07B +417 NWSA 16.05B +418 MAS 15.99B +419 KIM 15.95B +420 ALGN 15.94B +421 DLTR 15.78B +422 EG 15.57B +423 EXPD 15.56B +424 MRNA 15.50B +425 LNT 15.30B +426 AVY 15.22B +427 TPR 15.21B +428 FFIV 15.02B +429 DPZ 14.88B +430 CF 14.86B +431 BAX 14.85B +432 VTRS 14.80B +433 AKAM 14.56B +434 DOC 14.55B +435 SWKS 14.45B +436 RL 14.38B +437 TXT 14.33B +438 EVRG 14.20B +439 APTV 14.09B +440 EPAM 13.75B +441 RVTY 13.67B +442 AMCR 13.67B +443 REG 13.57B +444 INCY 13.47B +445 BXP 13.43B +446 POOL 13.38B +447 CAG 13.19B +448 KMX 13.07B +449 JKHY 12.92B +450 HST 12.74B +451 DVA 12.71B +452 CPT 12.61B +453 SWK 12.51B +454 JNPR 12.42B +455 CPB 12.41B +456 CHRW 12.33B +457 NDSN 12.10B +458 TAP 12.07B +459 UHS 11.95B +460 SJM 11.87B +461 PAYC 11.72B +462 DAY 11.71B +463 NCLH 11.62B +464 TECH 11.60B +465 ALLE 11.57B +466 SOLV 11.50B +467 AIZ 11.05B +468 BG 11.04B +469 BEN 10.93B +470 EMN 10.61B +471 ALB 10.58B +472 IPG 10.56B +473 MGM 10.34B +474 AOS 9.99B +475 ENPH 9.90B +476 PNW 9.73B +477 WYNN 9.66B +478 FRT 9.65B +479 LKQ 9.54B +480 CRL 9.53B +481 GL 9.29B +482 AES 9.26B +483 GNRC 9.20B +484 LW 9.08B +485 HSIC 8.73B +486 MKTX 8.65B +487 MTCH 8.34B +488 TFX 8.23B +489 APA 8.09B +490 IVZ 7.98B +491 HAS 7.97B +492 WBA 7.95B +493 MOS 7.71B +494 MHK 7.59B +495 HII 7.53B +496 CE 7.48B +497 CZR 7.08B +498 BWA 7.04B +499 PARA 6.95B +500 QRVO 6.76B +501 FMC 6.21B +502 AMTM 4.82B \ No newline at end of file diff --git a/strategy_api/results/tokens.csv b/strategy_api/results/tokens.csv new file mode 100644 index 0000000..c77a0af --- /dev/null +++ b/strategy_api/results/tokens.csv @@ -0,0 +1,83 @@ + +crypto,AAVE-USD,10x +crypto,ACE-USD,3x +crypto,ADA-USD,10x +crypto,AI-USD,3x +crypto,ALGO-USD,5x +crypto,ALT-USD,5x +crypto,APE-USD,10x +crypto,APT-USD,10x +crypto,AR-USD,5x +crypto,ARB-USD,10x +crypto,ARK-USD,3x +crypto,ATOM-USD,10x +crypto,AVAX-USD,10x +crypto,BADGER-USD,5x +crypto,BANANA-USD,3x +crypto,BCH-USD,10x +crypto,BIGTIME-USD,5x +crypto,BLAST-USD,3x +crypto,BLUR-USD,5x +crypto,BNB-USD,20x +crypto,BNT-USD,3x +crypto,BOME-USD,3x +crypto,kBONK-USD,10x +crypto,BRETT-USD,5x +crypto,BSV-USD,3x +crypto,BTC-USD,50x +crypto,CAKE-USD,3x +crypto,CATI-USD,3x +crypto,CELO-USD,3x +crypto,CFX-USD,5x +crypto,CHILLGUY-USD,3x +crypto,COMP-USD,5x +crypto,CRV-USD,10x +crypto,CYBER-USD,3x +crypto,DOGE-USD,20x +crypto,kDOGS-USD,3x +crypto,DOT-USD,10x +crypto,DYDX-USD,5x +crypto,DYM-USD,3x +crypto,EIGEN-USD,5x +crypto,ENA-USD,10x +crypto,ENS-USD,5x +crypto,ETC-USD,5x +crypto,ETH-USD,50x +crypto,ETHFI-USD,5x +crypto,FARTCOIN-USD,3x +crypto,FET-USD,5x +crypto,FIL-USD,10x +crypto,kFLOKI-USD,5x +crypto,FTM-USD,10x +crypto,FTT-USD,3x +crypto,FXS-USD,5x +crypto,SOL-USD,20x +crypto,STG-USD,3x +crypto,STRK-USD,5x +crypto,STX-USD,5x +crypto,SUI-USD,20x +crypto,SUPER-USD,3x +crypto,SUSHI-USD,5x +crypto,TAO-USD,5x +crypto,TIA-USD,10x +crypto,TNSR-USD,3x +crypto,TON-USD,10x +crypto,TRB-USD,3x +crypto,TRX-USD,10x +crypto,TURBO-USD,5x +crypto,UMA-USD,3x +crypto,UNI-USD,10x +crypto,USTC-USD,3x +crypto,USUAL-USD,5x +crypto,VIRTUAL-USD,5x +crypto,W-USD,5x +crypto,WIF-USD,10x +crypto,WLD-USD,10x +crypto,XAI-USD,3x +crypto,XLM-USD,5x +crypto,XRP-USD,20x +crypto,YGG-USD,3x +crypto,ZEN-USD,5x +crypto,ZETA-USD,3x +crypto,ZK-USD,5x +crypto,ZRO-USD,5x diff --git a/strategy_api/results/tsx.txt b/strategy_api/results/tsx.txt new file mode 100644 index 0000000..c2dbba6 --- /dev/null +++ b/strategy_api/results/tsx.txt @@ -0,0 +1,724 @@ +1 RY 245.54B +2 SHOP 204.84B +3 TD 133.38B +4 ENB 130.88B +5 BN 124.89B +6 TRI 105.34B +7 BMO 101.49B +8 CP 98.59B +9 CSU 96.37B +10 BNS 94.71B +11 CNR 93.11B +12 CNQ 92.80B +13 CM 87.20B +14 MFC 77.17B +15 ATD 76.40B +16 TRP 69.07B +17 WCN 64.13B +18 SU 63.68B +19 NGT 62.48B +20 L 57.70B +21 AEM 56.70B +22 SLF 49.00B +23 IFC 47.12B +24 IMO 46.94B +25 NA 46.31B +26 FFH 44.13B +27 GWO 43.88B +28 DOL 39.61B +29 ABX 39.42B +30 CVE 38.56B +31 WPM 37.48B +32 GIB.A 35.65B +33 BAM 33.58B +34 WSP 33.14B +35 CCO 32.93B +36 FNV 32.85B +37 QSP.UN 32.20B +38 NTR 31.59B +39 PPL 30.80B +40 QSR 30.57B +41 TECK.B 30.36B +42 TECK.A 30.36B +43 BCE 30.04B +44 FTS 29.86B +45 WN 29.70B +46 POW 29.20B +47 T 29.18B +48 H 26.68B +49 GFL 25.33B +50 RBA 24.13B +51 RCI.A 24.02B +52 RCI.B 24.02B +53 TOU 23.75B +54 IVN 23.73B +55 BIP.UN 21.26B +56 MRU 20.27B +57 MG 17.52B +58 TFII 17.19B +59 DAY 16.84B +60 K 16.64B +61 CLS 16.28B +62 BEP.UN 16.21B +63 EMA 15.87B +64 FM 15.72B +65 BEPC 15.39B +66 ARX 14.98B +67 OVV 14.52B +68 DSG 14.26B +69 BNT 14.21B +70 CCL.A 13.24B +71 CCL.B 13.24B +72 ATRL 13.19B +73 STN 13.07B +74 IAG 12.43B +75 X 12.36B +76 FSV 11.98B +77 EFN 11.73B +78 CAE 11.38B +79 AGI 11.09B +80 IGM 11.05B +81 PAAS 10.84B +82 SAP 10.61B +83 OTEX 10.56B +84 EMP.A 10.40B +85 GIL 10.36B +86 WFG 10.11B +87 KEY 9.97B +88 ALA 9.96B +89 CIGI 9.93B +90 LUN 9.64B +91 BBD.A 9.53B +92 BBD.B 9.53B +93 TIH 9.45B +94 CU 9.44B +95 BLCO 9.05B +96 CTC 8.62B +97 CTC.A 8.62B +98 CPX 8.39B +99 ONEX 8.16B +100 AC 7.97B +101 BIPC 7.93B +102 LUG 7.47B +103 QBR.B 7.24B +104 QBR.A 7.24B +105 CAR.UN 7.18B +106 SOBO 7.12B +107 ATZ 7.05B +108 BBU.UN 7.02B +109 CS 6.86B +110 NVEI 6.77B +111 PSK 6.71B +112 DFY 6.69B +113 SCR 6.40B +114 EDV 6.37B +115 TA 6.09B +116 MEG 6.06B +117 WCP 5.84B +118 PKI 5.72B +119 CWB 5.69B +120 NXE 5.62B +121 REI.UN 5.52B +122 ACO.X 5.44B +123 ACO.Y 5.44B +124 PRMW 5.38B +125 DOO 5.29B +126 FTT 5.11B +127 KXS 5.02B +128 OR 4.93B +129 AQN 4.93B +130 NPI 4.73B +131 BTO 4.70B +132 MX 4.70B +133 HBM 4.68B +134 BYD 4.63B +135 POU 4.57B +136 ELF 4.52B +137 GRT.UN 4.47B +138 ELD 4.43B +139 TFPM 4.39B +140 CHP.UN 4.38B +141 CIX 4.38B +142 ATS 4.38B +143 VRN 4.36B +144 FIL 4.31B +145 IMG 4.25B +146 CSH.UN 4.16B +147 TPZ 4.14B +148 GEI 4.01B +149 BHC 3.98B +150 SJ 3.95B +151 EQB 3.79B +152 SES 3.78B +153 STLC 3.71B +154 FCR.UN 3.61B +155 PBH 3.54B +156 LNR 3.53B +157 MDA 3.49B +158 TOY 3.44B +159 LSPD 3.43B +160 BB 3.34B +161 EQX 3.34B +162 GLXY 3.32B +163 HUT 3.27B +164 PEY 3.24B +165 BEI.UN 3.15B +166 PRU 3.13B +167 FIH.U 3.05B +168 WPK 3.04B +169 BLX 3.00B +170 NGEX 2.86B +171 NGD 2.86B +172 EIF 2.82B +173 BTE 2.80B +174 OGC 2.80B +175 CCA 2.78B +176 GSY 2.77B +177 CGG 2.75B +178 ATH 2.70B +179 NVA 2.70B +180 CIA 2.69B +181 AIF 2.59B +182 OLA 2.55B +183 BBUC 2.51B +184 MFI 2.51B +185 RUS 2.49B +186 CRR.UN 2.47B +187 HR.UN 2.46B +188 DML 2.44B +189 AG 2.43B +190 FN 2.42B +191 TXG 2.42B +192 TVE 2.41B +193 AP.UN 2.41B +194 WGX 2.40B +195 GMIN 2.38B +196 DPM 2.37B +197 NWC 2.36B +198 SSL 2.32B +199 TVK 2.25B +200 CEU 2.21B +201 RCH 2.16B +202 KMP.UN 2.10B +203 SSRM 2.09B +204 MAG 2.07B +205 VET 2.04B +206 DCBO 2.02B +207 ERO 2.01B +208 KNT 2.00B +209 SIL 1.97B +210 FVI 1.96B +211 IPCO 1.93B +212 MEQ 1.91B +213 FRU 1.91B +214 LIF 1.91B +215 WDO 1.89B +216 OSK 1.87B +217 TLRY 1.83B +218 TSU 1.81B +219 CXB 1.78B +220 CFP 1.78B +221 LNF 1.77B +222 EFX 1.76B +223 WELL 1.76B +224 PET 1.73B +225 CG 1.71B +226 ARE 1.71B +227 AND 1.68B +228 FOM 1.68B +229 CURA 1.68B +230 INE 1.67B +231 CJT 1.65B +232 DNTL 1.65B +233 NFI 1.65B +234 NG 1.58B +235 HWX 1.56B +236 PMZ.UN 1.55B +237 TCL.A 1.55B +238 TCL.B 1.55B +239 SEA 1.55B +240 SII 1.55B +241 JWEL 1.53B +242 AAV 1.53B +243 SPB 1.52B +244 ENGH 1.51B +245 HPS.A 1.51B +246 EFR 1.51B +247 IIP.UN 1.50B +248 TIXT 1.48B +249 ASTL 1.47B +250 BDT 1.46B +251 SVI 1.45B +252 SIS 1.45B +253 AYA 1.45B +254 PRL 1.44B +255 WTE 1.43B +256 GATO 1.41B +257 SKE 1.41B +258 GOOS 1.41B +259 EDR 1.39B +260 BIR 1.36B +261 IE 1.35B +262 SOY 1.35B +263 PXT 1.31B +264 KEL 1.30B +265 SFTC 1.30B +266 SIA 1.29B +267 MTL 1.29B +268 ALS 1.27B +269 LB 1.27B +270 ORA 1.27B +271 MRC 1.25B +272 BDGI 1.25B +273 KRR 1.21B +274 LAS.A 1.21B +275 CAS 1.19B +276 ZZZ 1.19B +277 PD 1.18B +278 DND 1.17B +279 CR 1.16B +280 PPTA 1.16B +281 BITF 1.16B +282 CHE.UN 1.13B +283 NWH.UN 1.12B +284 MTY 1.10B +285 CRON 1.09B +286 HRX 1.07B +287 PSI 1.07B +288 DTOL 1.06B +289 CVG 1.02B +290 CJ 1.01B +291 LAC 991.44M +292 GCG 990.69M +293 GCG.A 990.69M +294 AFN 984.84M +295 FSZ 962.97M +296 CF 959.86M +297 ET 949.21M +298 SVM 948.57M +299 CPLF 943.38M +300 DRM 934.86M +301 TCW 931.43M +302 ADEN 920.20M +303 PLC 904.87M +304 GDI 895.40M +305 ECN 879.98M +306 RUP 873.52M +307 AW 872.49M +308 ARIS 871.59M +309 IFP 868.54M +310 AAUC 867.50M +311 EXE 866.39M +312 MI.UN 866.20M +313 TKO 864.85M +314 CMG 861.87M +315 SEC 855.20M +316 SFC 850.62M +317 CUP.U 847.89M +318 TPX.B 834.75M +319 AOI 824.27M +320 NOA 823.59M +321 SGR.UN 820.72M +322 MATR 795.25M +323 CGX 789.02M +324 DBM 773.35M +325 RSI 770.96M +326 AX.UN 752.82M +327 SLS 747.29M +328 BLDP 730.59M +329 VZLA 720.69M +330 VLE 706.19M +331 MKP 700.92M +332 GFR 700.68M +333 KEC 687.98M +334 MDI 682.57M +335 TCS 675.83M +336 MRE 670.33M +337 AR 659.92M +338 CVO 659.16M +339 LAAC 649.28M +340 VNP 646.45M +341 PBL 635.94M +342 CTS 629.40M +343 MRG.UN 624.54M +344 FEC 623.72M +345 FCU 618.31M +346 MUX 603.13M +347 CHR 602.25M +348 URE 600.77M +349 TF 587.71M +350 VHI 585.09M +351 ALC 582.96M +352 HOM.U 579.81M +353 HOM.UN 579.81M +354 OBE 577.35M +355 BDI 574.19M +356 CGY 570.87M +357 SDE 564.24M +358 KSI 563.41M +359 SGY 554.04M +360 CGO 546.82M +361 MAL 545.72M +362 NXR.UN 541.23M +363 APR.UN 539.01M +364 GUD 529.21M +365 ESI 526.30M +366 BLN 525.92M +367 AI 519.69M +368 WFC 514.96M +369 RAY.A 502.58M +370 RAY.B 502.58M +371 DXT 500.01M +372 PMET 498.39M +373 VBNK 496.13M +374 MARI 494.98M +375 TAL 492.49M +376 ISC 490.62M +377 REAL 487.74M +378 ETG 486.10M +379 DIV 481.22M +380 WJX 468.61M +381 GAU 467.88M +382 HLF 465.76M +383 GTWO 464.12M +384 CNL 463.29M +385 ISO 461.33M +386 FC 439.70M +387 GBT 437.27M +388 TOT 435.42M +389 TWC 431.77M +390 PZA 430.44M +391 WEED 426.71M +392 MHC.UN 421.80M +393 PHX 419.87M +394 MSA 418.35M +395 TBL 411.27M +396 SOIL 410.24M +397 URC 410.13M +398 ACQ 405.65M +399 KBL 404.01M +400 BK 402.42M +401 PLZ.UN 398.49M +402 MND 393.48M +403 NDM 392.56M +404 NUAG 385.08M +405 AIDX 381.14M +406 GRA 380.46M +407 SOLG 378.40M +408 CPH 377.19M +409 DLCG 376.61M +410 BPF.UN 374.29M +411 MRD 372.86M +412 VCM 371.98M +413 ARR 370.53M +414 DR 369.09M +415 GTE 368.88M +416 TNZ 361.75M +417 GGD 359.18M +418 ERE.UN 354.42M +419 CSW.A 349.75M +420 CSW.B 349.75M +421 WILD 349.23M +422 QRC 348.17M +423 MRT.UN 347.80M +424 HTL 345.34M +425 TSAT 338.54M +426 STC 337.88M +427 MXG 337.57M +428 ACB 336.73M +429 LIRC 333.33M +430 NEO 332.76M +431 CKI 329.25M +432 RPI.UN 325.58M +433 CFW 323.73M +434 FVL 322.00M +435 PNE 318.71M +436 ADN 317.99M +437 PRV.UN 311.45M +438 PRB 307.95M +439 STEP 306.04M +440 PRN 301.19M +441 D.UN 300.28M +442 BTB.UN 296.94M +443 IAU 295.50M +444 MHC.U 294.91M +445 DRX 294.26M +446 WRN 293.39M +447 ORE 293.36M +448 XTC 290.97M +449 OGI 288.35M +450 DSV 288.33M +451 III 288.13M +452 ECOR 282.84M +453 KEI 278.00M +454 PIF 277.29M +455 ITE 276.56M +456 MPC 268.33M +457 MPC.C 268.33M +458 TSND 265.98M +459 KITS 265.24M +460 OLY 262.29M +461 ARG 261.61M +462 TC 252.71M +463 TMQ 252.68M +464 AIM 251.83M +465 FRX 244.28M +466 ECO 241.48M +467 VLN 227.73M +468 FAR 227.38M +469 AII 224.99M +470 GOLD 221.93M +471 PRYM 221.87M +472 LUC 220.04M +473 ACX 218.33M +474 FORA 218.09M +475 GH 211.72M +476 THNC 210.96M +477 GLO 210.71M +478 SYZ 208.81M +479 SHLE 206.56M +480 PTM 205.38M +481 DNG 204.05M +482 GIVX 199.44M +483 FCD.UN 199.40M +484 AMC 197.43M +485 WNDR 197.22M +486 RBY 197.06M +487 GDC 194.77M +488 ERD 190.48M +489 ASM 189.63M +490 ASCU 187.02M +491 AOT 186.43M +492 PAY 185.91M +493 ADW.B 185.07M +494 ADW.A 185.07M +495 DRT 183.74M +496 QTRH 181.73M +497 FTG 179.78M +498 SMT 175.73M +499 PRQ 174.53M +500 JAG 174.48M +501 ALYA 170.02M +502 KEG.UN 168.03M +503 VOXR 167.46M +504 LGO 160.28M +505 EPRX 159.95M +506 USA 158.64M +507 STGO 156.75M +508 FDY 156.06M +509 SBI 155.05M +510 LAM 154.37M +511 QIPT 152.11M +512 CXI 151.55M +513 Y 149.22M +514 NEXT 147.93M +515 HAI 147.90M +516 CRDL 147.70M +517 ANRG 147.29M +518 DRR.U 146.76M +519 MDNA 146.16M +520 IPO 145.99M +521 BRE 145.58M +522 TNT.UN 145.11M +523 GEO 141.96M +524 EDT 140.01M +525 IMP 132.01M +526 DC.A 131.44M +527 FF 129.58M +528 CNE 128.26M +529 BNE 126.90M +530 BRAG 126.54M +531 ITH 125.81M +532 ELVA 125.41M +533 GXE 125.21M +534 JOY 124.15M +535 CDR 124.12M +536 WEF 123.53M +537 HLS 123.04M +538 CRRX 121.71M +539 TH 119.55M +540 STCK 118.73M +541 DII.B 118.30M +542 HMM.A 117.88M +543 TRX 117.68M +544 PSD 116.52M +545 PNC.B 115.90M +546 PNC.A 115.90M +547 MNO 115.81M +548 E 115.72M +549 DCM 115.60M +550 MGA 115.31M +551 RCG 113.86M +552 FSY 112.18M +553 G 111.04M +554 GDL 110.88M +555 TLG 109.50M +556 ONC 108.67M +557 PYR 108.59M +558 SRV.UN 107.63M +559 COG 106.02M +560 TTNM 105.17M +561 XAU 104.57M +562 NANO 102.44M +563 BOS 101.74M +564 XTRA 99.38M +565 ILLM 99.33M +566 VGZ 99.24M +567 GRID 99.15M +568 MSCL 99.02M +569 QEC 98.56M +570 STLR 97.91M +571 YGR 97.75M +572 LGD 97.20M +573 GFP 96.42M +574 GCL 94.87M +575 SXP 94.31M +576 PNP 94.06M +577 CRP 93.43M +578 TXP 92.22M +579 XTG 86.62M +580 ARA 86.53M +581 WRG 86.30M +582 ROOT 86.14M +583 SAU 85.97M +584 WPRT 85.81M +585 TLO 84.12M +586 FURY 83.33M +587 LN 81.95M +588 KPT 81.80M +589 MDP 80.12M +590 TSL 79.65M +591 PEA 78.40M +592 LEV 78.05M +593 IS 77.66M +594 DYA 76.83M +595 MCB 75.56M +596 ELO 74.36M +597 XAM 74.26M +598 EXRO 72.10M +599 BUI 72.00M +600 SVA 71.57M +601 TRZ 71.07M +602 SLR 69.97M +603 MR.UN 67.93M +604 S 65.55M +605 GMX 65.04M +606 AKT.A 63.91M +607 BYL 60.47M +608 WM 60.31M +609 GCU 58.35M +610 TWM 55.95M +611 ICE 54.55M +612 MBX 53.56M +613 CFX 50.23M +614 TVA.B 49.25M +615 CCM 48.86M +616 HBP 47.55M +617 MOGO 46.38M +618 HOT.UN 45.96M +619 EAGR 45.60M +620 XLY 45.00M +621 PPR 41.87M +622 NPS 41.40M +623 EVO 40.48M +624 TI 38.18M +625 GURU 37.93M +626 CEMX 37.61M +627 SWP 37.59M +628 ATCU 37.29M +629 GENM 35.55M +630 AVCN 35.27M +631 BRMI 35.17M +632 ORV 34.84M +633 DBO 34.69M +634 CWL 34.58M +635 NPK 34.24M +636 SBR 33.89M +637 COPR 33.62M +638 BCT 33.60M +639 ACD 33.55M +640 FOOD 33.49M +641 BKI 33.45M +642 TSK 33.42M +643 WCM.A 33.05M +644 SOT.UN 32.96M +645 VGCX 32.51M +646 IFA 31.81M +647 AEG 31.56M +648 ELR 31.39M +649 NVO 31.06M +650 OGD 30.27M +651 UNI 29.47M +652 INO.UN 29.37M +653 RTG 28.22M +654 GMTN 27.78M +655 PMT 26.75M +656 LABS 26.72M +657 LCFS 26.16M +658 FANS 24.62M +659 TGO 24.36M +660 GVC 24.26M +661 SFI 24.13M +662 EGLX 23.08M +663 FT 23.02M +664 BEK.B 22.66M +665 CWEB 22.09M +666 BSX 22.03M +667 APS 21.73M +668 SGNL 21.68M +669 MPVD 21.22M +670 LSPK 20.70M +671 AVL 20.65M +672 OPT 19.88M +673 GRC 19.81M +674 CJR.B 16.95M +675 CHW 16.94M +676 WRX 16.33M +677 YRB 16.16M +678 RVX 15.44M +679 GRN 14.68M +680 ESM 14.39M +681 CFF 14.27M +682 HWO 14.19M +683 SFD 13.68M +684 GEC 13.49M +685 ELEF 13.48M +686 FLOW 13.16M +687 SGLD 13.14M +688 EXN 13.00M +689 NUMI 12.89M +690 NCF 12.14M +691 CSCI 11.84M +692 BU 11.41M +693 MSV 10.98M +694 DIAM 10.81M +695 CTX 10.74M +696 ADCO 9.38M +697 ASND 9.33M +698 CRWN 9.22M +699 VQS 9.14M +700 BRY 8.72M +701 WLLW 8.65M +702 SXI 8.51M +703 SAM 8.02M +704 BR 7.84M +705 AMM 7.55M +706 IVQ 7.31M +707 VRTS 6.40M +708 AAB 6.37M +709 KLS 5.99M +710 SVB 5.79M +711 SCY 5.32M +712 AVNT 5.31M +713 TMD 5.13M +714 KRN 5.06M +715 BNG 4.85M +716 APLI 4.24M +717 BABY 4.04M +718 MKZ.UN 3.13M +719 CNT 2.96M +720 FLNT 2.75M +721 AUMN 2.13M +722 SMC 1.96M +723 AXIS 606.87K +724 IOM 237.39K diff --git a/strategy_api/startup.sh b/strategy_api/startup.sh new file mode 100644 index 0000000..1227df9 --- /dev/null +++ b/strategy_api/startup.sh @@ -0,0 +1 @@ +python -m uvicorn main:app --host 0.0.0.0 diff --git a/strategy_api/strategy/__pycache__/averageRebalance.cpython-312.pyc b/strategy_api/strategy/__pycache__/averageRebalance.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf0850ab975a9bf5f7b0b0a6f2b93f04b2bc64b2 GIT binary patch literal 2601 zcmc&$O>7fa5Pth-JJ|X0#<59aAV4WuDTKDFDnL+)lK!ZuRz*@N1S4zXT^uKCJAG>> zthFgUa4;xUV{x!^!kp@qOOBvQg?ld~zF6BHkb253N~E^p($4JKZb+hto;s3e=l#sQ znQ!LJ^Dph~hX~MLKmU>VNg(8R95jh<2-^c7l!!tUMk5mpOFktEdzUEOW7gR*!5WOj zZ{Q#jccvW9GzQ!6fKVbTXe(rbRhYYEfoTn@Y@~+Rw5>2k{C!1nJkQ&=M$5IQNvq83?eZRiL+d~k($hC zmP^Yd5-PQLMb63+Z}GaS-J&iqMBT_dz;rx$0O-~Dl?&0Ybd~DS&y%T?5gp0Qr?rf% z=+QBnoKtT{v-T%8DaU8jv=Y^`RL-giBPP!#TZ8EC$cASP%M*(w)5&ZsmhauO++0F8 z^boLbNj(@Y@QdE&CvdpHf7iAROC;V36$Yqb!&C+VU?S7--AxM93sVbh7I)fYGLIYZ zjgXr|um%wBr)hFtD2F_h5n3?WnGtZ1S?qh0-3#pEFb_JTWQB`t{0+2$XRfd|-_OtO_0igj$c8_W5_djM>#pecP67~mJ`FBwIn zA{G}4zTf=8CH+C)7Gc}Y7B1I2yT3Q?8Rg?;v3z+saPLkfTOln)blVF0A3! z;Ceo^2Wn@b3so9O2m4CNVzR;(Qw8r1q=)xIy1&*rR6ly+VRAWH^;g;IyDR*1rszea zhY{)i7oNTYke+~Jp;<9d%l}^gowW?1KrKUinBI9yKnn@08S6OTj<;bkgw<&>c`uB3 zlOH7#8=b*W806TZCyl32^!ROJk+$#p@NOOp7SN4TNDo|R@bSe|%}I`^$@ma21( zD9p)PPTf@!9L>b{i3(#Mjv#0iP8V%|{0)sN~iv?F*3_wM92MV6Lw|hw` zO%T_3ty7lWn2;$Zn)W$cIOqv-0}wNvM7;)TMM zdZ)NFwRHXdoq8y|$&s#OFWY;{frsJcaOGC5_sn|xnbpB3W6#E)jz3S-E=AVgi|jOY zI1;;k}Z}KdbbV*IKJ2_@b5-|_Y(e8u<2RH((Be=c`iCWen>w6%XpJ?>}b$T80J?Z{>cw9@EQWM GJ^BZ7z%q0I literal 0 HcmV?d00001 diff --git a/strategy_api/strategy/__pycache__/coVariance.cpython-312.pyc b/strategy_api/strategy/__pycache__/coVariance.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a4bc7b8d6494be970690fb8a482a5d6c3e688680 GIT binary patch literal 1987 zcma(SO-LM9_|4z$?Ch!=bz6U8IxR_HXj!Y!9wg+FNYexijn$OR(qY{9Tu0}}yqVSR zGD0XGOiM|6($Dpek{sZ{2LOu807_eY-BCfV@>=4MZ8U+%(D0FO+K8kWgvjy@A~NQf#u3Ff@Er0l z8@^GhTi2n~*c_du#413bz(G*pA-4=@8VSfF5ei707HMdyAXOzTNtBX1X<*ZEN~qLG zCGx^(fqqAwk*|OYfF21Lr~-{+i6ktyTt-;qiRd9~8nb?R%u-cf-ncYUobV9#idRkB zt`;x5i;m?Q&?|n7%?0#X(T|WmWt8TS1B;%IX?f+UZp@p!9}6)V%^SAoyPf&k36 zHl@K1ILK`=eY%zs|EWz6;8;5uBxd7dsym2aAO%7o9&5=#@_%Thd{%L^d{%a}0(q;E zeG4xY^WxjKqy#bqfzk(-AYQtl$uOi2-lxI|Wl?-*>H67nmr(LX;+=a#rsU^cI zRV>3dT_;}~e1(ng9_yhN;V4Xc7iBbs;Si9l;0qUlV# zS_ZR|BT27nPr24mOblaoG?<+Vk!k4&FBlee42KvPCK3xYR7b<~jWQjb#w+_X?2U>0 zz_a$AweIixzv9i`%)Rv8^q$;`OU>m^I>KC=Jtn=CLdpY zd?CDfD=fnB779^0oWWt)3w!-1a%I1xH*Y2eSqDXH&K_j5o|_|e2) z4A2TIO0GRm=Za2GzWFDs-`^#MLbA(Y&N_z6g(F=j{6PdcR>Cr=y(b`e+BRSE#|ns7l4Au{vZ1W;)wtN literal 0 HcmV?d00001 diff --git a/strategy_api/strategy/__pycache__/momentum.cpython-312.pyc b/strategy_api/strategy/__pycache__/momentum.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da5492358c99816dd40594fd99c0af404f48fb8f GIT binary patch literal 3798 zcmdT{T}&L;6~6Pg>>plWmj%XPZve;4#wBS*ow~8z*w{p(6?Fnt8$>f1cBbov{p+29 zz-CeX;D>cYRIENgooqOio@BH2UV{5CQK>O$K|DJrwOUU1FQg3{1a2SKZI#G$rq{%eHl2?ez-X$ux z%{m;@>@p+q2RNBXI7<$#?UTc+FkdGcoL0#+t1@@VG>0;#d6feys60@QDgbR!JwUx` z3s9fxSG{+cY5%fM3RvDuE~90Qg-oKZ8GZ%7!NKov9LPE;GDRZ8$Z16uW{f-IU{==& zZUZwsX*U%)UAfCd;wCI|&;xstVEOgs%xo_GgOqMqo^&pm)TqU)ilJB@J(bKVY0INz zatm2Q;w@g+(m$hsC80hfh_8-R%<{~Q+*{dnPEqxlDVkc; zmSzmQlV_F0yp~mGbb~5}mRy#Ve9E27)PWezFI!$&PGwVuEEn3{<@yqSRzC;i4ylNP zC4MzjiS|Mls6@J<^HrkQ1u9)VCH~#OAuy7JiwI0yYc_;>IPjV{kKNwm<(cY_^S*gi0t<3eq;%KcXyN)^>z9VF2#RtZ+ud^z3$Re1rV7 z8`S2D;0$xFGr*BrD>7*GA|D{w7vM50+^WbE;J2^6A`}Jt!W0intR+w-3l4#HmOReo zJ&wQ7Agoz}ku$(Un3UC`ENWCqYPtv3(H&y38U%VqX@US|A>h!j0|5xy+DpRc?a{Tx zU-eZ9<9n`jtrBcsn_7SU{_7iyX6LgHm`!SS#?4^--p$7xFzk19ZFufqD792V(b6dg zDHjQl=_2(Tn5>f|Sz!Pz2!J`5A8&Kb4pH0OuJwTBHwc*lAXYd)l$isEINpj}9eD;E zM`dk9Sq#iMgyC45AA)-`s~3QmnFK|VZgCSf)(3b8h_Dd&ldR{cp{cT(N*I=qGPH~i zF__Oo%-E<)f@6u+*_>hIGLv@v>XwkeD7CnGZJ9aqHeL&YTKzIp4k(JO>uZn95Ka_vUssdcwhA1cxiO4vl8st3&zY~Y%{zYJcmYn z6*g{yKX35w2i^;mLj#qz&Pu3v$J_fj0LLEtNn0OG{_jmlV}KKwF3@B)Isj{Q5DCUf z-C}+tm#>+NK8u^@k(^|#RGtF(bMqTRR=aC) z!%RpVjU#+6)V1_XpTpG#vX~Jt44ia?z+OwIYgRZ4Y-1e->sNq)|J%T#>mS3E@eR~n z-^KLL!G6qA1N$Ka@avdil-qe+gaH(t6SLAJp~J8(F%*jhbXatBJX*Vh5AHB&*XBY; zvtu}G-$ZWoI?z27{^i^E-rn(wjw;RRt_3)3RlWep>m&tf4iY7QvPzH)e*%e6fZb*p zAOah_O9Z>HkU0eVSabGN7CGv#DwUgu#7c!Cukv=%#P2?(k{`%y}lLNdYeFjJZ-K*ZfGz33+ zh+c$Vs@m@cs8;NR%}sH4i?MjSI5j-;EAQpBl9^SNtA(?!V`jA_WB779mr&CBRTwx7 zXdxZn6?e#^$Rp*mt~q4fx+Bgps#5Qy`R2tJ6~ zN_-_MuIKLOs)X~s#+1e|0W95H+VE~h&F-NGgC9#<(!((`{?aF-X8h%H=-Q{({uH`d zX^U(y_kC-8SU;p#rFo-@Pe z%Hi`n!Sl9U?aiL-?4LI(cIu-UvL^XPXVVjR7%(sAHNx7E=#po%ceUr5J4`0ETaR3%7l GvHt?gNfeF% literal 0 HcmV?d00001 diff --git a/strategy_api/strategy/__pycache__/standardDeviation.cpython-312.pyc b/strategy_api/strategy/__pycache__/standardDeviation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a50113d52487798b866e6295d55eab96f764651c GIT binary patch literal 4110 zcmb_fO>7&-72YLxmrJgGBFUCT)jvcN3);q#{~F7YV!N{CD2{DLv6KL&g=|;c6}8rK z$;>Wolc4|~e4x-4R?&lK1ch}}pd5VkQTJXXORm|8gSseCK)1p=6ws;f?UFP_$!To# z0et)3%zJN!JM(=r`87K~EDa@9GOas9s-woeJWsP_XY*HJ%riO@V>Kq`)7X1V%&+-CbDAGCkAubpjRzgb z3UYw9*p6yxD$$1YTZZZwDJx$2k64q3pC5jk4ybu1&*m8gEKfA_Dnm04#=4ScZdS~i zXWpOpEnzJX$SYe6ygBfyV`_fzs+F>g%ta}aJ3Qq$X}kaEQ8jJ!P8gPI#r58JDvAEl zTPKfBn}(&^^qo`J#?GG_y%HO~`sK0cv13*gepFiWuYxRb(C+2lmZv~kiA zkge+%`p3Vpbz+ZyY9y1{@uAdh%S@@7Jw8T^Tl$@G$9*UhYJ6I^v~k-Zu)K+^0@JTL zVAQQdZ#qjwMKLVHQIuTg&i+cD2ote?4eBmaYTsYrelL~UJMi(mb$@Z};f)737P}sG zt+jp#ZGqDM3k7an43`e~6}YG3FE=5NiC32c9JKMbc^A|?<5ZXUW_hzhb5-)}Qn`P| zUlUnf&}txTo@ykAn<3BTU@>wKFvHjQ0J#|fd_FHs`bQa=jmm!Nv(l7H>Z(Qkwxh`b z@(!d?4p5>}$;u=ZXjL@*7U{tDK-r^GCY{!aGLgzy8kNk{?TTXuAP(0KgtTE!TU<5c z857pUtwmHTq2~_oeCNA_HAB8V4C*fPyt(E6?b+LN&hKUl-1F8w^Id=JD(?BykwT!< z-dVh{*tdG%#A^GA0xZyWx4CWZ#=`q6%{?n(57`T~;EUDrhOYn;Y^FD#XNw`JhCb)p4!t&Ll-PBd}XNLb%`(So~1Hq^%fS%fqRX4_C9 zl5MkX+8Mu8Zekgrl15?VAFBHG&beq zDHA}?t7dvi%^e&v0KLXU2B|WVnv7g9Q?_9xA|u3z>vpbjn@@uu6aDLqZpE{d&E|YP zJy=$~W7st4QkIi7b<&Nq5vf0II#hruWr$9>DHwpi&yF*IPN zsnl)R=R$#WLJb?YOl3c}q|KD0Xf?CVy}NTa?+9wgI$wc;y(~)iL$je`-&65jw8dF* zZcp+2!sMe1PsP*N5}XaLw4PWOPnJXH&aHc)kTy54E*`3+#TUjNwLKL-DEog1d0V{7 z^Dtg@i!ZxdTw`Z=%?CuV>sfNMmaZTf1qq{an$83uueQ1u!sG*at`aj2HD<(_;7sT> zV<1J;No70DNRYG3mcNPTM4iBiCVtEOxdxJNkjv${Z{e1Z4?+d*6-eHof>5pydg}^- zyi_-TKN0d$J~%zZFoeyDdB2T*Xd3n(`q`iyic;V4sSQNrmT(n#yFaqk^aYY}cf;#Toaan7(NQ*wg`n-+*9tr#vCwla~)(nfcj%6URX z!*X>&9DR3{s2OjQwuuaE0mOK&fN@!@z^UvyS7d9mm%?P8J$phz<9pS?QVBu_|^HPc6K+&|W;WF3P2C z?PnKz77sm^mM<@#SqXo>E?#@1?sJQ07LTrk``5*Re@HEJ$%W}B?Z-=PoqucDSG>A- z`N{r1a9*^9Jt`=lKJZU#sNivh3OJww{xvY&jS9GY^j%mGH>A z_<23nezLm;YcHgZ;=mKBtJD@QHNqY9Nn>{n&Z2P7fKLibP3nq5LyD42X&Dpk21WTg zqnch1*#ob^rBU($TA!l&4Aggw3s?7T5=4co(6E02>K^mb$MdIOHt~G#%ccO|_Oi8= z@7(ML<>g_dEK$+D71@qW5WNJ!Pg|0zgVzz$n1Bx-w5Z@cNe}k(aLrF=$v(9A!na=< z4g$-udtZGLyWe)+tVXdcUZdTaZiydx|MM)l4sH0oVk2Gu+t0G>4@~plneHE%Lq9OB SKQc%D!<}V2UoxQF{Qm+^{gy8P literal 0 HcmV?d00001 diff --git a/strategy_api/strategy/averageRebalance.py b/strategy_api/strategy/averageRebalance.py new file mode 100644 index 0000000..92cb507 --- /dev/null +++ b/strategy_api/strategy/averageRebalance.py @@ -0,0 +1,47 @@ +import numpy as np + +class averageRebalance(): + def __init__(self, symbol, logger, data): + self.symbol = symbol + self.logger = logger + self.data = data + + def highest(self, num): + highestPrice = self.data[-1] + for i in range(num): + if(self.data[-i-1] > highestPrice): + highestPrice = self.data[-i-1] + return highestPrice + + def lowest(self, num): + lowestPrice = self.data[-1] + for i in range(num): + if(self.data[-i-1] < lowestPrice): + lowestPrice = self.data[-i-1] + return lowestPrice + + def sma(self, amount): + total = 0 + for i in range(amount): + total += self.data[-i] + average = total/amount + return average + + def roc(self, curPrice, prevPrice): + value = ((curPrice-prevPrice)/prevPrice)*100 + return value + + def next(self, curPrice): + weekly = 7 + monthly = 20 + deltaMax = 5 + if(curPrice < self.sma(monthly) and curPrice <= self.lowest(weekly)): + roc = self.roc(curPrice, self.highest(weekly)) + if(roc < -deltaMax): + return "Buy" + elif(curPrice >= self.highest(weekly) and curPrice > self.sma(monthly)): + roc = self.roc(curPrice, self.lowest(weekly)) + if(roc > deltaMax): + return "Sell" + else: + return "None" diff --git a/strategy_api/strategy/coVariance.py b/strategy_api/strategy/coVariance.py new file mode 100644 index 0000000..f44f2a5 --- /dev/null +++ b/strategy_api/strategy/coVariance.py @@ -0,0 +1,27 @@ +from datetime import datetime, timedelta, date +import requests +import numpy as np +from components.marketData import marketData + +class coVariance: + def __init__(self, logger): + self.logger = logger + + def calculate_covariance(self, symbol1, symbol2, start_date: date, end_date: date, interval="1d"): + md1 = marketData(self.logger, symbol1, "none") + md2 = marketData(self.logger, symbol2, "none") + + data1 = md1.fetch_market_data(interval, start_date, end_date) + data2 = md2.fetch_market_data(interval, start_date, end_date) + + min_length = min(len(data1), len(data2)) + data1 = data1[:min_length] + data2 = data2[:min_length] + + if len(data1) < 2 or len(data2) < 2: + self.logger.error("Not enough data points for covariance calculation.") + raise ValueError("Not enough data points to calculate covariance.") + + covariance = np.cov(data1, data2)[0, 1] + self.logger.info(f"Covariance between {symbol1} and {symbol2} from {start_date} to {end_date}: {covariance}") + return covariance diff --git a/strategy_api/strategy/momentum.py b/strategy_api/strategy/momentum.py new file mode 100644 index 0000000..919d3c2 --- /dev/null +++ b/strategy_api/strategy/momentum.py @@ -0,0 +1,69 @@ +import numpy as np + +class momentum(): + def __init__(self, symbolList, logger, data): + self.symbolList = symbolList + self.logger = logger + self.data = data + self.signal = "" + self.amount = 25 + + def roc(self, curPrice, prevPrice): + value = ((curPrice-prevPrice)/prevPrice)*100 + return value + + def sma(self, symbol, amount): + total = 0 + for i in range(amount): + total += self.data[symbol][-i] + average = total/amount + return average + + def getBottomSymbols(self): + bottomSymbols = [] + count = 0 + for key, value in self.rev_sorted_dict.items(): + bottomSymbols.append(key) + count += 1 + if count == self.amount: + break + return bottomSymbols + + def getTopSymbols(self): + topSymbols = [] + count = 0 + for key, value in self.sorted_dict.items(): + topSymbols.append(key) + count += 1 + if count == self.amount: + break + return topSymbols + + def getAllSymbols(self): + topSymbols = [] + for key, value in self.sorted_dict.items(): + topSymbols.append(key) + return topSymbols + + + def getSignal(self): + return self.signal + + def next(self, curPrice, day=7): + results = {} + temp = 0 + for symbol in self.symbolList: + if(self.roc(curPrice[symbol], self.data[symbol][-30]) < 3): + temp += 1 + results[symbol] = self.roc(curPrice[symbol], self.data[symbol][-day]) + + self.sorted_dict = dict(sorted(results.items(), key=lambda item: item[1], reverse=True)) + self.rev_sorted_dict = dict(sorted(results.items(), key=lambda item: item[1], reverse=False)) + + if(temp > 10): + self.signal = "short" + return self.getBottomSymbols() + else: + self.signal = "long" + # return self.getTopSymbols() + return self.getAllSymbols() \ No newline at end of file diff --git a/strategy_api/strategy/standardDeviation.py b/strategy_api/strategy/standardDeviation.py new file mode 100644 index 0000000..3d51e94 --- /dev/null +++ b/strategy_api/strategy/standardDeviation.py @@ -0,0 +1,69 @@ +import requests +from datetime import datetime, timedelta +import matplotlib.pyplot as plt +import numpy as np +from components.marketData import marketData + +class standardDeviation(): + def __init__(self, logger, sector, symbol): + self.logger = logger + self.signal = "" + self.md = marketData(self.logger, symbol, sector) + self.API_ENDPOINT = "https://api.binance.com/api/v3/klines" + self.ALPHA_VANTAGE_API_KEY = "6RTB6SLZGMV0N00L" + + def calculate_std_range(self, data, num_std_dev): + mean = np.mean(data) + std_dev = np.std(data) + upper_bound = mean + num_std_dev * std_dev + lower_bound = mean - num_std_dev * std_dev + return mean, upper_bound, lower_bound + + def plot_distribution(self, data): + plt.figure(figsize=(10, 6)) + plt.hist(data, bins=30, color="blue", alpha=0.7) + plt.title("Distribution of Closing Prices") + plt.xlabel("Closing Price") + plt.ylabel("Frequency") + plt.grid(axis="y", linestyle="--", alpha=0.7) + plt.show() + + def closeSignal(self, sector, symbol, is_buy, close_std_dev): + interval = "1h" + days = 14 + + closing_prices = self.md.fetch_market_data_days(interval, days) + mean, upper_bound, lower_bound = self.calculate_std_range(closing_prices, close_std_dev) + current_price = self.md.get_current_price() + + self.logger.info(f"Mean: {mean}") + self.logger.info(f"Upper Bound (+{close_std_dev} Std Dev): {upper_bound}") + self.logger.info(f"Lower Bound (-{close_std_dev} Std Dev): {lower_bound}") + self.logger.info(f"Current price: {current_price}") + + if is_buy and current_price > upper_bound: + return "close" + elif not is_buy and current_price < lower_bound: + return "close" + else: + return "none" + + def next(self, sector, symbol, open_std_dev): + interval = "1h" + days = 14 + + closing_prices = self.md.fetch_market_data_days(interval, days) + mean, upper_bound, lower_bound = self.calculate_std_range(closing_prices, open_std_dev) + current_price = self.md.get_current_price() + + self.logger.info(f"Mean: {mean}") + self.logger.info(f"Upper Bound (+{open_std_dev} Std Dev): {upper_bound}") + self.logger.info(f"Lower Bound (-{open_std_dev} Std Dev): {lower_bound}") + self.logger.info(f"Current price: {current_price}") + + if current_price < lower_bound: + return "long" + elif current_price > upper_bound: + return "short" + else: + return "none" diff --git a/strategy_api/trader/__pycache__/alertTrader.cpython-312.pyc b/strategy_api/trader/__pycache__/alertTrader.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9ba9ef04011fa6348eb3360b52e7a84b2e7b3ed3 GIT binary patch literal 7617 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 Qt$(y97^d$rL29u4AJil$NB{r; literal 0 HcmV?d00001 diff --git a/strategy_api/trader/alertTrader.py b/strategy_api/trader/alertTrader.py new file mode 100644 index 0000000..7775a19 --- /dev/null +++ b/strategy_api/trader/alertTrader.py @@ -0,0 +1,105 @@ +from configparser import ConfigParser +from components.alert import alert +from components.marketData import marketData + +from strategy.averageRebalance import averageRebalance +from strategy.momentum import momentum +from configparser import ConfigParser + + +import logging +from datetime import datetime +import time +import pandas as pd + +class alertTrader: + def __init__(self, listSymbol): + date = datetime.now().strftime("%Y_%m_%d") + self.config = ConfigParser() + self.config.read("./config/config.ini") + self.level = self.config.get("LoggerConfig", "level"); + logging.basicConfig(filename="./logs/"+str(date)+".log", level=self.level.upper(), format='%(asctime)s - %(levelname)s - %(message)s') + self.logger = logging.getLogger(__name__) + + self.alert = alert(self.logger) + self.listSymbol = listSymbol + + def runAverageRebalanceAlert(self, sector, email): + self.alert.setEmail(email) + self.run(sector) + + def run(self, sector): + self.logger.info("**********Starting Alert Trader**********") + + buySignals = {} + sellSignals = {} + + listSymbol = self.listSymbol + alpha_api_key = "6RTB6SLZGMV0N00L" + + count = 1 + for symbol in listSymbol: + try: + md = marketData(self.logger, symbol, sector) + current_date = datetime.now().strftime('%Y-%m-%d') + num_trading_days_back = 25 + result_date = md.get_trading_days_back(current_date, num_trading_days_back) + data = md.fetch_market_data("1d", datetime.strptime(result_date, "%Y-%m-%d").date(), datetime.strptime(current_date, "%Y-%m-%d").date()) + curPrice = md.get_current_price() + averageRebalanceSym = averageRebalance(symbol, self.logger, data) + signal = averageRebalanceSym.next(curPrice) + + if signal == "Buy": + buySignals[symbol] = curPrice + elif signal == "Sell": + sellSignals[symbol] = curPrice + + print(f"{count}/{len(listSymbol)}") + self.logger.info(f"{count}/{len(listSymbol)}") + count += 1 + + except Exception as e: + self.logger.error(f"Error in: {symbol} with error... {str(e)}") + + self.alert.emailAgg("Trivex Average Rebalance Alert Signal !!!", buySignals, sellSignals) + self.logger.info("**********Finishing Alert Trader**********") + + def runMomentumAlert(self, sector, email): + self.alert.setEmail(email) + self.runMomentum(sector) + + def runMomentum(self, sector): + self.logger.info("**********Starting Alert Trader**********") + + symbolList = self.listSymbol + + count = 1 + + md = {} + prices = {} + curPrice = {} + for symbol in symbolList: + try: + md[symbol] = marketData(self.logger, symbol, sector) + current_date = datetime.now().strftime('%Y-%m-%d') + num_trading_days_back = 30 + result_date = md[symbol].get_trading_days_back(current_date, num_trading_days_back) + prices[symbol] = md[symbol].fetch_market_data("1d", datetime.strptime(result_date, "%Y-%m-%d").date(), datetime.strptime(current_date, "%Y-%m-%d").date()) + curPrice[symbol] = md[symbol].get_current_price() + print(f"{count}/{len(symbolList)}") + self.logger.info(f"{count}/{len(symbolList)}") + count += 1 + except Exception as e: + self.logger.error(f"Error in: {symbol} with error... {str(e)}") + + strategy = momentum(symbolList, self.logger, prices) + symbols = strategy.next(curPrice) + signal = strategy.getSignal() + + result = {} + + for symbol in symbols: + result[symbol] = curPrice[symbol] + + self.alert.emailMomentum("Trivex Momentum Alert Signal !!!", signal, result) + self.logger.info("**********Finishing Alert Trader**********") \ No newline at end of file From 6e31fb06539c10606eac4e0e581ac5cdd56163d4 Mon Sep 17 00:00:00 2001 From: JY20 Date: Wed, 21 May 2025 17:00:54 -0400 Subject: [PATCH 3/7] updating the hash and spacing for strategy page --- .../src/components/AppContract.jsx | 4 +-- trivex_frontend/src/pages/StrategyPage.js | 27 ++++++++++--------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/trivex_frontend/src/components/AppContract.jsx b/trivex_frontend/src/components/AppContract.jsx index fb6912c..b6bf192 100644 --- a/trivex_frontend/src/components/AppContract.jsx +++ b/trivex_frontend/src/components/AppContract.jsx @@ -2,8 +2,8 @@ import { Contract, Provider, cairo, CallData, shortString } from 'starknet'; const hash_provider = new Provider({ network: 'sepolia' }); -const classHash = '0x044bdb1b55aa0c3e7f1437434e205bfd697405b805e654a68a3fa3adb82e1eeb'; -const contractAddress = '0x031015bf30be2b3e1241bd44b65d6c21fe32255cca3f68b59b5c8a9a0fca3b9b'; +const classHash = '0x04074c9358508a35eb68e9a785fecffededed939e27705539df6ee5e7efb01f8'; +const contractAddress = '0x074b86ea6740d99816f83b83e30895c88b8e628ff8cbf216cc3310022781228d'; const usdcTokenAddress = '0x53b40a647cedfca6ca84f542a0fe36736031905a9639a7f19a3c1e66bfd5080'; const strkTokenAddress = '0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d'; diff --git a/trivex_frontend/src/pages/StrategyPage.js b/trivex_frontend/src/pages/StrategyPage.js index 82000b1..57b792a 100644 --- a/trivex_frontend/src/pages/StrategyPage.js +++ b/trivex_frontend/src/pages/StrategyPage.js @@ -9,6 +9,7 @@ import Result from '../components/Result'; import Information from '../components/Information'; import Selection from '../components/Selection'; import data from "../assets/data.json"; +import TradingViewWidget from "../components/TradingViewWidget"; const StrategyPage = () => { const [strategy, setStrategy] = useState(data[0].value); @@ -20,7 +21,7 @@ const StrategyPage = () => { const [history, setHistory] = useState([]); - const host = "http://localhost:8080"; + const host = "https://trivex-strategy-etbga3bramfwgfe9.canadacentral-01.azurewebsites.net"; const parameterMap = { newStrategy: ['email', 'address', 'price', 'tag', 'description', 'link', 'parameters'], @@ -201,19 +202,19 @@ const StrategyPage = () => { if(info.walletAddress != null){ return ( - - - - - - - + + + + + + + + + + + - - - - - + ); }else{ return From dca502bb26574782d11db2552dfaa227396bc4f8 Mon Sep 17 00:00:00 2001 From: JY20 Date: Wed, 21 May 2025 17:59:02 -0400 Subject: [PATCH 4/7] updating the UI theme --- trivex_frontend/src/App.css | 39 ++ trivex_frontend/src/App.js | 23 +- trivex_frontend/src/assets/starknet.png | Bin 4835 -> 43335 bytes trivex_frontend/src/components/CloseOrder.jsx | 213 +++++--- trivex_frontend/src/components/Footer.jsx | 244 +++++++-- .../src/components/Information.jsx | 123 +++-- trivex_frontend/src/components/Navbar.jsx | 484 +++++++++++++----- trivex_frontend/src/components/OpenOrder.jsx | 203 ++++++-- trivex_frontend/src/components/Result.jsx | 125 ++++- trivex_frontend/src/components/Selection.jsx | 144 ++++-- trivex_frontend/src/components/Stake.jsx | 109 +++- .../src/components/TradingViewWidget.js | 15 +- trivex_frontend/src/components/Unstake.jsx | 109 +++- trivex_frontend/src/index.css | 156 +++++- trivex_frontend/src/pages/SettingPage.js | 384 +++++++++----- trivex_frontend/src/pages/StakePage.js | 214 ++++++-- trivex_frontend/src/pages/StrategyPage.js | 24 +- trivex_frontend/src/pages/TradePage.js | 76 +-- 18 files changed, 2019 insertions(+), 666 deletions(-) diff --git a/trivex_frontend/src/App.css b/trivex_frontend/src/App.css index 74b5e05..5f9be69 100644 --- a/trivex_frontend/src/App.css +++ b/trivex_frontend/src/App.css @@ -36,3 +36,42 @@ transform: rotate(360deg); } } + +/* Web3 animated background elements */ +.web3-glow { + position: fixed; + pointer-events: none; + z-index: -1; + border-radius: 50%; + opacity: 0.6; +} + +.web3-glow:nth-child(1) { + top: 20%; + left: 5%; + width: 400px; + height: 400px; + background: radial-gradient(circle, rgba(155, 109, 255, 0.1) 0%, transparent 70%); + animation: float 15s ease-in-out infinite; +} + +.web3-glow:nth-child(2) { + bottom: 10%; + right: 5%; + width: 500px; + height: 500px; + background: radial-gradient(circle, rgba(106, 75, 161, 0.08) 0%, transparent 70%); + animation: float 20s ease-in-out infinite reverse; +} + +@keyframes float { + 0% { + transform: translateY(0) rotate(0deg); + } + 50% { + transform: translateY(-30px) rotate(5deg); + } + 100% { + transform: translateY(0) rotate(0deg); + } +} diff --git a/trivex_frontend/src/App.js b/trivex_frontend/src/App.js index 4a3d95c..e660e58 100644 --- a/trivex_frontend/src/App.js +++ b/trivex_frontend/src/App.js @@ -7,17 +7,30 @@ import SettingPage from "./pages/SettingPage"; import Navbar from "./components/Navbar"; import Footer from "./components/Footer"; import { AppProvider } from './components/AppProvider'; +import './App.css'; const App = () => ( + {/* Web3 animated background elements */} +
+
+
+ - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } />