wance_data/models.py

370 lines
40 KiB
Python
Raw Normal View History

2024-10-08 06:06:24 +00:00
<EFBFBD><EFBFBD>from tortoise import Model, fields
class Aerich(Model):
app = fields.CharField(max_length=100, )
content = fields.JSONField()
id = fields.IntField(pk=True, )
version = fields.CharField(max_length=255, )
class BackObservedData(Model):
id = fields.IntField(pk=True, description='idh<>', )
key = fields.CharField(max_length=255, null=True, description='key', )
observed_data = fields.BinaryField(null=True, description='<h_ST<>vjsonpenc', )
class BackObservedDataDetail(Model):
back_observed_data = fields.BinaryField(null=True, )
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=255, )
class BackPosition(Model):
back_position_data = fields.BinaryField(null=True, )
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=25, null=True, )
class BackResultIndicator(Model):
id = fields.IntField(pk=True, )
indicator = fields.BinaryField(null=True, )
key = fields.CharField(max_length=25, null=True, )
class BackTrandInfo(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=25, null=True, )
trade_info = fields.BinaryField(null=True, )
class Backtest(Model):
backtest_at = fields.DatetimeField(description='<00>VKm<4B>e<EFBFBD><65>', )
backtest_code = fields.TextField(description='<00>VKm<4B>Nx', )
deleted_at = fields.DatetimeField(null=True, description=' Rd<52><64>e<EFBFBD><65>', )
id = fields.IntField(pk=True, )
is_active = fields.BooleanField(default=True, description='/f&T<>S(u', )
is_running = fields.BooleanField(default=True, description='<00>VKm<4B>r`', )
key = fields.CharField(unique=True, max_length=20, description='<00>VKmkey', )
key = fields.CharField(unique=True, max_length=20, description='<00>VKmkey', )
strategy_id = fields.IntField(index=True, )
updated_at = fields.DatetimeField(description='<00>O9e<39>e<EFBFBD><65>', )
user_id = fields.IntField(description='<00>VKm(u7b', )
class Backtesting(Model):
id = fields.IntField(pk=True, description=';N.<2E>id', )
key = fields.CharField(max_length=30, description='<00>VKmkey', )
class Entrust(Model):
account_type = fields.SmallIntField(description='&<26>7b{|<7C>W', )
deal_number = fields.IntField(description='b<>[peϑ', )
deal_price = fields.FloatField(null=True, description='b<>N<EFBFBD>N<h', )
entrust_date = fields.DateField(null=True, description='<00>YXb<58>eg', )
entrust_money = fields.FloatField(description='<00>YXbё<62><D191>', )
entrust_number = fields.IntField(description='<00>YXbpeϑ', )
entrust_time = fields.TimeField(null=True, )
fund_account = fields.IntField(description='D<>ё&<26>7b', )
id = fields.IntField(pk=True, description=';N.<2E>id', )
is_repair = fields.BooleanField(default=False, description='/f&Te<54>US', )
limit_price = fields.FloatField(description='<00>YXb<58>N', )
order_type = fields.CharField(max_length=30, description='<00>d\O', )
securities_alias = fields.CharField(max_length=30, null=True, description='&<26>7b+R T', )
stock_code = fields.CharField(max_length=30, description='<00><>8R<38>Nx', )
stock_name = fields.CharField(max_length=30, description='<00><>8R T<EFBFBD>y', )
class Orders(Model):
entrust_date = fields.DatetimeField(null=True, description='<00>YXb<58>eg', )
entrust_time = fields.TimeField(null=True, )
id = fields.IntField(pk=True, description='<00><>USID', )
limit_price = fields.FloatField(description='P<><50>N', )
order_amount = fields.FloatField(description='<00>YXbё<62><D191>', )
order_quantity = fields.IntField(description='<00>YXbpeϑ', )
order_type = fields.CharField(max_length=20, description='<00><>US{|<7C>W', )
position = fields.CharField(max_length=30, description='<00>NMO', )
stock_code = fields.CharField(max_length=30, description='<00><>hy<68>Nx', )
stock_name = fields.CharField(max_length=30, description='<00><>hy T<EFBFBD>y', )
user_id = fields.IntField(description='(u7bId', )
class Position(Model):
adjbase = fields.FloatField(description=' YCg<EFBFBD>Wpe', )
date = fields.CharField(max_length=255, description='<00>eg', )
id = fields.IntField(pk=True, description=';N.<2E>', )
key = fields.CharField(max_length=30, description='.<2E>', )
name = fields.CharField(max_length=30, description=' T<EFBFBD>y', )
price = fields.FloatField(description='<00>N<h', )
profit = fields.FloatField(description=')R<>m', )
size = fields.IntField(description='peϑ', )
class SecurityAccount(Model):
account_alias = fields.CharField(max_length=30, description='&<26>7b+R T', )
available_money = fields.FloatField(null=True, description='<00>S(uё<75><D191>', )
available_proportion = fields.FloatField(null=True, description='<00>S(uD<75>ё`S<>k', )
freeze = fields.FloatField(null=True, description='<00>Q<EFBFBD><><D191>', )
fund_account = fields.BigIntField(description='D<>ё&<26>7b', )
id = fields.IntField(pk=True, description=';N.<2E>', )
money = fields.FloatField(null=True, description='&<26>7bё<62><D191>', )
securities_name = fields.CharField(max_length=30, description='<00><>8RlQ<6C>S TW[5f<EFBFBD>y', )
class Smsname(Model):
gender = fields.CharField(max_length=45, default=0, description='/f&T Rd<52>', )
id = fields.IntField(pk=True, description='ꁞXID', )
mobile = fields.CharField(max_length=45, default=0, description='R<>^<5E>e<EFBFBD><65>', )
student_name = fields.CharField(max_length=45, description='<00>r`', )
student_no = fields.CharField(max_length=20, description='/UNx,MR<4D>SO(u', )
class Snowball(Model):
id = fields.IntField(pk=True, description=';N.<2E>', )
snowball_token = fields.CharField(max_length=10000, null=True, description='<00><>t(u7b<37>vtoken', )
class Stock(Model):
id = fields.IntField(pk=True, description=';N.<2E>', )
stock_code = fields.CharField(max_length=30, description='<00><>hy<68>Nx', )
stock_name = fields.CharField(max_length=30, null=True, description='<00><>hy T<EFBFBD>y', )
stock_pinyin = fields.CharField(max_length=30, description='<00><>hy<68>b<EFBFBD><62>', )
type = fields.CharField(max_length=2, null=True, description='{|<7C>W', )
class StockBtHistory(Model):
bt_benchmark_code = fields.CharField(max_length=6, null=True, description='<00><>hy<68>W<EFBFBD>Q<EFBFBD>Nx', )
bt_stock_code = fields.CharField(max_length=6, null=True, description='<00>VKm<4B><6D>hy<68>Nx', )
bt_stock_data = fields.BinaryField(null=True, description='<00>VKm<4B><6D>hypenc', )
bt_stock_name = fields.CharField(max_length=10, null=True, description='<00>VKm<4B><6D>hy T<EFBFBD>y', )
bt_stock_period = fields.CharField(max_length=10, null=True, description='<00>VKm{|<7C>W', )
bt_strategy_name = fields.CharField(max_length=10, null=True, description='<00>VKmV{eu T<EFBFBD>y', )
end_bt_time = fields.CharField(max_length=8, null=True, description='<00>VKmg<>~<7E>e<EFBFBD><65>', )
id = fields.IntField(pk=True, )
class StockDataProcessing(Model):
bt_benchmark_code = fields.CharField(max_length=6, null=True, description='<00>W<EFBFBD>Q<EFBFBD>Nx', )
bt_stock_period = fields.CharField(max_length=10, null=True, description='penc{|<7C>W', )
bt_strategy_name = fields.CharField(max_length=10, null=True, description='<00>VKmV{eu T', )
id = fields.IntField(pk=True, )
processing_data = fields.BinaryField(null=True, description='nmT<>vpenc', )
prosessing_date = fields.CharField(max_length=10, null=True, description='S_MR<4D>VKm<4B>e<EFBFBD><65>', )
stock_name = fields.CharField(max_length=10, null=True, )
stocke_code = fields.CharField(max_length=10, null=True, )
class StockDetails(Model):
id = fields.IntField(pk=True, description=';N.<2E>', )
latest_price = fields.FloatField(null=True, description='g<>e<EFBFBD>N', )
rise_fall = fields.FloatField(null=True, description='̍<>mE^', )
stock_code = fields.CharField(max_length=30, description='<00><>hy<68>Nx', )
stock_name = fields.CharField(max_length=30, null=True, description='<00><>hy T<EFBFBD>y', )
stock_pinyin = fields.CharField(max_length=30, description='<00><>hy<68>b<EFBFBD><62>', )
type = fields.CharField(max_length=2, null=True, description='{|<7C>W', )
class StockHistory(Model):
end_bt_time = fields.CharField(max_length=10, null=True, description='g<>~<7E>VKm<4B>e<EFBFBD><65>', )
id = fields.IntField(pk=True, )
start_time_to_market = fields.CharField(max_length=10, null=True, description='<00><>hy
N^<EFBFBD>e<EFBFBD><EFBFBD>', )
stock_code = fields.IntField(description='<00><>hy<68>Nx', )
stock_name = fields.CharField(max_length=10, null=True, )
symbol_data = fields.BinaryField(null=True, description='<00><>hypenc', )
class Strategy(Model):
backtest_count = fields.IntField(description='<00>VKm!kpe', )
backtest_keys = fields.JSONField(null=True, description='<00>VKmkeyRh<52>', )
created_at = fields.DatetimeField(description='R<>^<5E>e<EFBFBD><65>', )
deleted_at = fields.DatetimeField(null=True, description=' Rd<52><64>e<EFBFBD><65>', )
id = fields.IntField(pk=True, description=';N.<2E>', )
is_deleted = fields.BooleanField(default=False, description='/f&T Rd<52>', )
strategy_hash = fields.CharField(max_length=255, description='V{euHr,g<>S', )
strategy_name = fields.CharField(max_length=255, description='V{eu T<EFBFBD>y', )
strategy_type = fields.CharField(max_length=255, null=True, description='V{eu{|<7C>W', )
updated_at = fields.DatetimeField(description='<00>O9e<39>e<EFBFBD><65>', )
user_id = fields.IntField(description='@b^\(u7b', )
class TranObserverData(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=255, )
tran_observer_data = fields.BinaryField(null=True, description='X[<5B>P'Yϑpenc', )
class TranPosition(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=25, null=True, )
tran_position_data = fields.BinaryField(null=True, )
class TranReturn(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=255, null=True, )
tran_return_data = fields.BinaryField(null=True, )
class TranTradeInfo(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=25, null=True, )
tran_trade_info = fields.BinaryField(null=True, )
class TrandInfo(Model):
id = fields.IntField(pk=True, description='id', )
key = fields.CharField(max_length=255, null=True, description='/UN"}_', )
tran_info_data = fields.BinaryField(null=True, )
class Tranorders(Model):
id = fields.IntField(pk=True, )
key = fields.CharField(max_length=255, null=True, )
order_return = fields.BinaryField(null=True, )
class Transaction(Model):
bar = fields.CharField(max_length=10, null=True, description='<00><><EFBFBD>sK<00>~', )
cash = fields.FloatField(null=True, description='D<>ё', )
created_at = fields.DatetimeField(description='R<>^<5E>e<EFBFBD><65>', )
deleted_at = fields.DatetimeField(null=True, description=' Rd<52><64>e<EFBFBD><65>', )
id = fields.IntField(pk=True, description=';N.<2E>', )
is_deleted = fields.BooleanField(default=False, description='/f&T Rd<52>', )
is_running = fields.BooleanField(default=True, description='ЏL<D08F><4C>r`', )
key = fields.CharField(max_length=20, description='key,penc', )
process_id = fields.IntField(description='ۏ z<>S', )
stopped_at = fields.DatetimeField(null=True, description='\Pbk<EFBFBD>e<EFBFBD><EFBFBD>', )
strategy_id = fields.IntField(index=True, )
transaction_name = fields.CharField(max_length=255, description='<00>Nf T<EFBFBD>y', )
transaction_type = fields.CharField(max_length=255, null=True, description='<00>Nf{|<7C>W', )
updated_at = fields.DatetimeField(description='<00>O9e<39>e<EFBFBD><65>', )
user_id = fields.IntField(description='(u7bid', )
class UserStrategy(Model):
create_time = fields.DatetimeField(null=True, )
deleted_stock = fields.BinaryField(null=True, )
id = fields.IntField(pk=True, )
strategy_name = fields.CharField(max_length=30, null=True, )
strategy_request = fields.BinaryField()
user_id = fields.IntField(index=True, )
class Users(Model):
avatar_url = fields.CharField(max_length=255, null=True, description='4Y<34>P', )
beta_account_type = fields.CharField(max_length=30, null=True, description='<00>QKm&<26><>S{|<7C>W', )
created_at = fields.DatetimeField(description='R<>^<5E>e<EFBFBD><65>', )
created_user_id = fields.IntField(description='R<>^<5E>Nid', )
dedicated_id = fields.IntField(description='N^\<EFBFBD>[ gid', )
deleted_at = fields.DatetimeField(null=True, description=' Rd<52><64>e<EFBFBD><65>', )
id = fields.IntField(pk=True, description=';N.<2E>', )
invited_user_id = fields.IntField(description='<00><><EFBFBD><EFBFBD><EFBFBD>Nid', )
is_deleted = fields.BooleanField(default=False, description='/f&T Rd<52>', )
login_at = fields.DatetimeField(null=True, description='gTN!k{vU_<EFBFBD>e<EFBFBD><EFBFBD>', )
member_type = fields.IntField(description='OXT{|<7C>W', )
nickname = fields.CharField(max_length=30, null=True, description='(u7b5f<35>y', )
pre_cost_time = fields.IntField(description='<00><>/e<>N<EFBFBD>e<EFBFBD><65><08>USMOt^ <09>', )
qr_code = fields.CharField(max_length=255, null=True, description='N^\<EFBFBD>[ g<EFBFBD>N<EFBFBD>~x', )
updated_at = fields.DatetimeField(description='<00>O9e<39>e<EFBFBD><65>', )
class WanceDataStock(Model):
financial_asset_value = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD><6B><EFBFBD>QD<51><44>N', )
financial_cash_flow = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD><6B><EFBFBD>sёAm', )
financial_dividend = fields.FloatField(null=True, default=0, description='R<>~<7E>s', )
financial_ex_gratia = fields.FloatField(null=True, default=0, description='cb^<5E>T<>k<EFBFBD><6B>6e<36>v', )
financial_reserve_per = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD><6B>D<EFBFBD>,glQ<6C>', )
financial_undistributed_profit = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD><6B>*gRM<52>)R<>m', )
growth_attributable_rate = fields.FloatField(null=True, default=0, description='R_<52>k<EFBFBD>Q)R<>m T<>k<EFBFBD>X<58><7F>s', )
growth_growth_rate = fields.FloatField(null=True, default=0, description='%<EFBFBD>N)R<>m T<>k<EFBFBD>X<58><7F>s', )
growth_Income_rate = fields.FloatField(null=True, default=0, description='%<EFBFBD>N;`6eeQ T<>k<EFBFBD>X<58><7F>s', )
growth_nonnet_profit = fields.FloatField(null=True, default=0, description='cb^<5E><>Q)R<>m<EFBFBD>X<58><7F>s', )
id = fields.IntField(pk=True, )
market_indicator = fields.FloatField(null=True, default=0, description='L<><4C>`ch', )
market_sector = fields.CharField(max_length=20, null=True, description='@b^\^:W', )
profit_asset_value = fields.FloatField(null=True, default=0, description='<00>QD<51><44>N6e<36>v<EFBFBD>s', )
profit_business_increase = fields.FloatField(null=True, default=0, description='%<EFBFBD>N6eeQ<65>X<58><7F>s', )
profit_dividend_rate = fields.FloatField(null=True, default=0, description='<00><>o`<60>s', )
profit_gross_rate = fields.FloatField(null=True, default=0, description='<00>.U<>k)R<>s', )
profit_sale_ratio = fields.FloatField(null=True, default=0, description='<00>v)R<00>.U<>Q)R<>s', )
stock_code = fields.CharField(max_length=50, null=True, description='<00><>hy<68>Nx', )
stock_name = fields.CharField(max_length=50, null=True, description='<00><>hy T<EFBFBD>y', )
stock_sector = fields.JSONField(null=True, description='<00><>hygWW', )
stock_type = fields.JSONField(null=True, description='<00><>hy{|<7C>W', )
time_end = fields.CharField(max_length=10, null=True, description='
NN!k<EFBFBD>VKm<EFBFBD>~_g<EFBFBD>e<EFBFBD><EFBFBD>', )
time_expire = fields.CharField(max_length=10, null=True, description='<00>^<5E>e<EFBFBD><65>', )
time_start = fields.CharField(max_length=10, null=True, description='
N^<EFBFBD>e<EFBFBD><EFBFBD>', )
valuation_market_percentile = fields.FloatField(null=True, default=0, description='^<5E>s<EFBFBD>s~vR<>k', )
valuation_market_TTM = fields.FloatField(null=True, default=0, description='^<5E>s<EFBFBD>sTTM', )
valuation_PB_percentile = fields.FloatField(null=True, default=0, description='^<5E>Q<EFBFBD>s~vR<>k', )
valuation_PB_TTM = fields.FloatField(null=True, default=0, description='^<5E>Q<EFBFBD>sTTM', )
valuation_PEG_percentile = fields.FloatField(null=True, default=0, description='^<5E>v<EFBFBD>s~vRMO', )
valuation_PEGTTM_ratio = fields.FloatField(null=True, default=0, description='^<5E>v<EFBFBD>sTTM', )
valuation_PTS_percentile = fields.FloatField(null=True, default=0, description='^<00><>s~vRMO', )
valuation_PTS_TTM = fields.FloatField(null=True, default=0, description='^<00><>sTTM', )
class WanceDataStorageBacktest(Model):
avg_down_month = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>k*Ng <4E>e<EFBFBD>vs^GW_c1Y', )
avg_drawdown = fields.FloatField(null=True, default=0, description='s^GW<47>V<EFBFBD>d <0C>h<EFBFBD>:y<>k!k<>V<EFBFBD>d<EFBFBD>vs^GWE^<5E>^', )
avg_drawdown_days = fields.FloatField(null=True, default=0, description='s^GW<47>V<EFBFBD>dc<>~<7E>v)Ype', )
avg_up_month = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>k*Ng
N<EFBFBD>m<EFBFBD>e<EFBFBD>vs^GW6e<EFBFBD>v', )
backtest_end_time = fields.IntField(description='<00>VKm<4B>~_g<5F>e<EFBFBD><65>', )
backtest_name = fields.CharField(max_length=100, null=True, )
best_day = fields.FloatField(null=True, default=0, description='<00>VKmg<><67>US<55>e<EFBFBD>vg'Y<EFBFBD>V<EFBFBD>b', )
best_month = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>vgsOg<>N<EFBFBD>V<EFBFBD>b', )
best_year = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>vgsOt^<5E>^<5E>V<EFBFBD>b<08><><EFBFBD>:Nzz <0C>h<EFBFBD>:y<>VKm N<EFBFBD><EFBFBD>Nt^ <EFBFBD>', )
cagr = fields.FloatField(null=True, default=0, description='t^S YT<EFBFBD>X<EFBFBD><EFBFBD>s <EFBFBD>h<EFBFBD>:y<EFBFBD>bD<EFBFBD>(Wte*N<EFBFBD>VKmg<EFBFBD><EFBFBD><EFBFBD>vt^GW<EFBFBD>X<EFBFBD><EFBFBD>s', )
calmar = fields.FloatField(null=True, default=0, description='Calmar <00>k<EFBFBD>s <0C>h<EFBFBD>:yt^S6e<36>v<EFBFBD>sNg'Y<EFBFBD>V<EFBFBD>d<EFBFBD>v<EFBFBD>k<EFBFBD>s <EFBFBD>(u<EFBFBD>Na<EFBFBD>ϑΘi<EFBFBD><EFBFBD>teT<EFBFBD>v6e<EFBFBD>v0Calmar <EFBFBD>k<EFBFBD>s<EFBFBD><EFBFBD>ؚ <EFBFBD>asT@wΘi<EFBFBD><EFBFBD>teT<EFBFBD>vh<EFBFBD><EFBFBD>s<EFBFBD><EFBFBD>}Y', )
daily_kurt = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD>e<EFBFBD>V<EFBFBD>b<EFBFBD>v<EFBFBD>\<EFBFBD>^ <0C>h<EFBFBD>:y<>V<EFBFBD>bR^<5E>v\<10> z<>^', )
daily_mean = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD>e<EFBFBD>vs^GW<47>V<EFBFBD>b<EFBFBD>s', )
daily_price = fields.JSONField(null=True, description='<00>k<EFBFBD>e<EFBFBD>v<EFBFBD>N<h', )
daily_sharpe = fields.FloatField(null=True, default=0, description='<00>e<EFBFBD><65><EFBFBD>s<EFBFBD>vYnf<6E>k<EFBFBD>s <0C>h<EFBFBD>:y<>kUSMOΘi<CE98>@b<><62><EFBFBD>_<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD>6e<36>v', )
daily_skew = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD>e<EFBFBD>V<EFBFBD>b<EFBFBD>vOP<4F>^ <0C>h<EFBFBD>:y<>V<EFBFBD>bR^<5E>v<EFBFBD>[<5B>y'`', )
daily_sortino = fields.FloatField(null=True, default=0, description='<00>e<EFBFBD><65><EFBFBD>s<EFBFBD>v Sortino <00>k<EFBFBD>s <0C>a<EFBFBD>ϑ<EFBFBD>bD<62><44>~T<>v NL<4E>Θi<CE98> <0C><03>Q<EFBFBD><51>v/f<1F><>l<EFBFBD>R<EFBFBD>s', )
daily_vol = fields.FloatField(null=True, default=0, description='<00>k<EFBFBD>e<EFBFBD>V<EFBFBD>b<EFBFBD>s<EFBFBD>vh<>Q<EFBFBD>]<08><>l<EFBFBD>R<EFBFBD>s <09> <0C>h<EFBFBD>:y6e<36>v<EFBFBD>v<EFBFBD>l<EFBFBD>R'`', )
data_end_time = fields.CharField(max_length=10, null=True, description='<00>VKmpenc<6E>~_g<5F>e<EFBFBD><65>', )
data_start_time = fields.CharField(max_length=10, null=True, description='<00>VKmpenc_<>Y<EFBFBD>e<EFBFBD><65>', )
five_year = fields.FloatField(null=True, default=0, description='Ǐ<>S<EFBFBD>Nt^<5E>v<EFBFBD>V<EFBFBD>b', )
id = fields.IntField(pk=True, )
incep = fields.FloatField(null=True, default=0, description='<00><>V{eu_<>YЏL<D08F><4C>Neg<65>vt^S<>V<EFBFBD>b<EFBFBD>s<08><>Y<EFBFBD>gV{eu<EFBFBD>l g<>[te<74>vNt^ <0C>RI{<EFBFBD>N cagr <09>', )
indicator_information = fields.JSONField(null=True, description='ch<>Oo`', )
indicator_type = fields.CharField(max_length=20, null=True, description='ch{|<7C>W', )
max_drawdown = fields.FloatField(null=True, default=0, description='g'Y<EFBFBD>V<EFBFBD>d <EFBFBD>h<EFBFBD>:y<EFBFBD>bD<EFBFBD><EFBFBD>~T(W<EFBFBD>VKmg<EFBFBD><EFBFBD><EFBFBD>Ngؚ<EFBFBD>p0RgNO<EFBFBD>p<EFBFBD>vg'Y<EFBFBD>N_c~vR<>k', )
monthly_kurt = fields.FloatField(null=True, default=0, description='g<>^<5E>V<EFBFBD>b<EFBFBD>v<EFBFBD>\<EFBFBD>^', )
monthly_mean = fields.FloatField(null=True, default=0, description='g<>^s^GW<47>V<EFBFBD>b<EFBFBD>s', )
monthly_sharpe = fields.FloatField(null=True, default=0, description='g<><67><EFBFBD>s<EFBFBD>vYnf<6E>k<EFBFBD>s', )
monthly_skew = fields.FloatField(null=True, default=0, description='g<>^<5E>V<EFBFBD>b<EFBFBD>vOP<4F>^', )
monthly_sortino = fields.FloatField(null=True, default=0, description='g<><67><EFBFBD>s<EFBFBD>v Sortino <00>k<EFBFBD>s', )
monthly_vol = fields.FloatField(null=True, default=0, description='g<>^<5E>V<EFBFBD>b<EFBFBD>s<EFBFBD>vh<>Q<EFBFBD>]<08><>l<EFBFBD>R<EFBFBD>s <09>', )
mtd = fields.FloatField(null=True, default=0, description='g<>Q*b<><62><EFBFBD>vMR<4D>v<EFBFBD>V<EFBFBD>b', )
one_year = fields.FloatField(null=True, default=0, description='<00>v<EFBFBD>V<EFBFBD>b', )
position = fields.JSONField(null=True, description='c<>N<EFBFBD><4E>U_', )
price = fields.JSONField(null=True, description='<00>k<EFBFBD>e<EFBFBD>vYO<59><4F>', )
returns = fields.JSONField(null=True, description='<00>k<EFBFBD>e<EFBFBD>v<EFBFBD>V<EFBFBD>b<EFBFBD>s', )
rf = fields.FloatField(null=True, default=0, description='<00>eΘi<CE98>6e<36>v<EFBFBD>s <0C><1A>8^(ueg<65><67><EFBFBD>{Ynf<6E>k<EFBFBD>sI{ch <0C><1A>8^:N0h<>:y<>_eu<65>eΘi<CE98>6e<36>v', )
six_month = fields.FloatField(null=True, default=0, description='Ǐ<>SmQ*Ng<>v<EFBFBD>V<EFBFBD>b<08><>Y<EFBFBD>g:Nzz <0C>h<EFBFBD>:y<>e<EFBFBD>vsQpenc', )
stock_close_price = fields.JSONField(null=True, description='<00><>hy6e<36>v<EFBFBD>N', )
stock_code = fields.CharField(max_length=20, null=True, )
strategy_name = fields.CharField(max_length=50, null=True, description='<00>VKm<4B>vV{eu T<EFBFBD>y', )
ten_year = fields.IntField(description='Ǐ<>SASt^<5E>v<EFBFBD>V<EFBFBD>b', )
three_month = fields.FloatField(null=True, default=0, description='Ǐ<>S N*Ng<>v<EFBFBD>V<EFBFBD>b', )
three_year = fields.FloatField(null=True, default=0, description='Ǐ<>S Nt^<5E>v<EFBFBD>V<EFBFBD>b', )
total_return = fields.FloatField(null=True, default=0, description=';`<60>V<EFBFBD>b<EFBFBD>s', )
twelve_month_win_perc = fields.FloatField(null=True, default=0, description='Ǐ<>S12*Ng<><76>s <0C>h<EFBFBD>:y(WǏ<57>S12*Ng-N gY\g<>v<EFBFBD>V<EFBFBD>b:Nck', )
win_year_perc = fields.FloatField(null=True, default=0, description='V{eut^<5E><>s <0C>h<EFBFBD>:y<>VKmg<><67>V{euh<EFBFBD><EFBFBD>sO<>N<EFBFBD>eΘi<CE98>6e<36>v<EFBFBD>s<EFBFBD>vt^<5E>N~vR<>k', )
worst_day = fields.FloatField(null=True, default=0, description='<00>VKmg<><67>US<55>e<EFBFBD>vg<>]<5D>V<EFBFBD>b', )
worst_month = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>vg<>]g<>N<EFBFBD>V<EFBFBD>b', )
worst_year = fields.FloatField(null=True, default=0, description='<00>VKmg<><67><EFBFBD>vg<>]t^<5E>^<5E>V<EFBFBD>b<08><><EFBFBD>:Nzz <0C>h<EFBFBD>:y<>VKm N<EFBFBD><EFBFBD>Nt^ <EFBFBD>', )
yearly_kurt = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>v<EFBFBD>\<EFBFBD>^', )
yearly_mean = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>vs^GW<47>V<EFBFBD>b', )
yearly_sharpe = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>vYnf<6E>k<EFBFBD>s', )
yearly_skew = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>vOP<4F>^', )
yearly_sortino = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>vSortino <00>k<EFBFBD>s', )
yearly_vol = fields.FloatField(null=True, default=0, description='t^<5E>^<5E>v<EFBFBD>l<EFBFBD>R<EFBFBD>s', )
ytd = fields.FloatField(null=True, default=0, description='t^R<><52><EFBFBD>N<EFBFBD>v<EFBFBD>V<EFBFBD>b', )