美股 輕量版超級績效
安裝套件¶
In [ ]:
Copied!
!pip install finlab > log.txt
!pip install finlab > log.txt
In [ ]:
Copied!
from finlab import data
from finlab.backtest import sim
# 資料引入
close = data.get('us_price:close')
revenue = data.get('us_fundamental:revenue')
eps = data.get('us_fundamental:eps')
volume = data.get('us_price:volume')
low = data.get('us_price:low')
high = data.get('us_price:high')
from finlab import data
from finlab.backtest import sim
# 資料引入
close = data.get('us_price:close')
revenue = data.get('us_fundamental:revenue')
eps = data.get('us_fundamental:eps')
volume = data.get('us_price:volume')
low = data.get('us_price:low')
high = data.get('us_price:high')
輸入成功!
WARNING:finlab.data:us_price:close -- Daily usage: 1298.2 / 5000 MB WARNING:finlab.data:us_fundamental:revenue -- Daily usage: 1302.8 / 5000 MB WARNING:finlab.data:us_fundamental:eps -- Daily usage: 1307.3 / 5000 MB WARNING:finlab.data:us_price:volume -- Daily usage: 1359.1 / 5000 MB WARNING:finlab.data:us_price:low -- Daily usage: 1404.2 / 5000 MB WARNING:finlab.data:us_price:high -- Daily usage: 1449.6 / 5000 MB
In [ ]:
Copied!
# 技術面條件
cond1 = (close.average(50) > close.average(150))
cond2 = close > high.rolling(250).max()*0.75
# 基本面條件
revenue_cond = (revenue > revenue.average(3))
eps_cond = (eps > eps.average(3))
result = cond1 & cond2 & revenue_cond & eps_cond
# 前面條件取交集後再以相對強度排名選出前10檔
rs = close / close.shift(250)
result = result * rs
result = result[result >0].is_largest(10)
# 最後再篩出交易量較低(準備噴發)的個股
result = result & (volume < volume.average(30))
report = sim(result, resample='M', tax_ratio=0, fee_ratio=0, stop_loss=0.15, take_profit=0.2)
# report.display()
# 技術面條件
cond1 = (close.average(50) > close.average(150))
cond2 = close > high.rolling(250).max()*0.75
# 基本面條件
revenue_cond = (revenue > revenue.average(3))
eps_cond = (eps > eps.average(3))
result = cond1 & cond2 & revenue_cond & eps_cond
# 前面條件取交集後再以相對強度排名選出前10檔
rs = close / close.shift(250)
result = result * rs
result = result[result >0].is_largest(10)
# 最後再篩出交易量較低(準備噴發)的個股
result = result & (volume < volume.average(30))
report = sim(result, resample='M', tax_ratio=0, fee_ratio=0, stop_loss=0.15, take_profit=0.2)
# report.display()
WARNING:finlab.data:us_fundamental:datekey -- Daily usage: 1454.7 / 5000 MB WARNING:finlab.data:security_categories -- Daily usage: 1496.3 / 5000 MB WARNING:finlab.data:us_tickers -- Daily usage: 1506.2 / 5000 MB WARNING:finlab.data:us_price:adj_close -- Daily usage: 1552.6 / 5000 MB WARNING:finlab.data:world_index:adj_close -- Daily usage: 1558.3 / 5000 MB /usr/local/lib/python3.10/dist-packages/finlab/analysis/alphaBetaAnalysis.py:22: RuntimeWarning: invalid value encountered in double_scalars
| annualized_rate_of_return | sharpe | max_drawdown | win_ratio | |
|---|---|---|---|---|
| 40.06% | 1.04 | -41.55% | 52.3% |
| entry_date | exit_date | entry_sig_date | exit_sig_date | position | period | entry_index | exit_index | return | trade_price@entry_date | trade_price@exit_date | mae | gmfe | bmfe | mdd | pdays | weight | next_weights | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stock_id | ||||||||||||||||||
| JFIN JIAYIN GROUP INC | 2023-06-01 | 2023-06-06 | 2023-05-31 | 2023-06-05 | 0.142857 | 3.0 | 1613.0 | 1616.0 | 0.107937 | 6.30 | 6.98 | 0.000000 | 0.269841 | 0.000000 | -0.127500 | 3.0 | 0.000000 | 0.000000 |
| AEHR AEHR TEST SYSTEMS | 2023-06-01 | NaT | 2023-05-31 | 2023-06-30 | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.104075 | 38.53 | 42.54 | 0.000000 | 0.104075 | 0.000000 | -0.032918 | 6.0 | 0.142857 | 0.000000 |
| GOCO GOHEALTH INC | 2023-06-01 | NaT | 2023-05-31 | NaT | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.010283 | 19.45 | 19.65 | -0.001028 | 0.028278 | 0.028278 | -0.028500 | 5.0 | 0.142857 | 0.166667 |
| IMGN IMMUNOGEN INC | 2023-06-01 | NaT | 2023-05-31 | 2023-06-09 | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.211009 | 14.17 | 17.16 | 0.000000 | 0.211009 | 0.000000 | -0.042941 | 6.0 | 0.142857 | 0.000000 |
| IMPP IMPERIAL PETROLEUM INC/MARSHALL ISLANDS | 2023-06-01 | NaT | 2023-05-31 | NaT | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.173410 | 3.46 | 4.06 | 0.000000 | 0.173410 | 0.000000 | -0.032432 | 6.0 | 0.142857 | 0.166667 |
| RXDX PROMETHEUS BIOSCIENCES INC | 2023-06-01 | NaT | 2023-05-31 | 2023-06-30 | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.001712 | 198.65 | 198.99 | 0.000000 | 0.001712 | 0.000000 | -0.000151 | 6.0 | 0.142857 | 0.000000 |
| SEAC SEACHANGE INTERNATIONAL INC | 2023-06-01 | NaT | 2023-05-31 | NaT | 0.142857 | 7.0 | 1613.0 | -1.0 | 0.097944 | 8.27 | 9.08 | 0.000000 | 0.114873 | 0.000000 | -0.020607 | 6.0 | 0.142857 | 0.166667 |
| ELF ELF BEAUTY INC | NaT | NaT | 2023-06-30 | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.000000 | 0.166667 |
| HIPO HIPPO HOLDINGS INC | NaT | NaT | 2023-06-30 | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.000000 | 0.166667 |
| SYM SYMBOTIC INC | NaT | NaT | 2023-06-30 | NaT | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 0.000000 | 0.166667 |
In [ ]:
Copied!