- 策略广场
- 饭-日内交易_2
饭-日内交易_2
Author:
bitfan, Date: 2020-07-19 04:36:17
Tags:
日内
(*
# 回测参数:
平台 - okex期货,
15分钟,
余额 - 1,
执行方式 - 实盘价模型,
品种代码 - this_week
# 回测结果:
LENGTH:32 ~ 96
本金:1BTC
时间:2020.6.17 - 2020.7.17
# xx小时内的最高价 交易次数 平仓盈亏 胜率 最大回撤 夏普 预估收益 利润
0 8小时 221 -0.0554 25 % 13.28 % -0.361 -0.12 0
1 9小时 198 -0.05994 21.88 % 13.07 % -0.387 -0.118 0
2 10小时 187 -0.0327 21.88 % 10.02 % -0.315 -0.087 0
3 11小时 182 -0.03914 21.88 % 9.92 % -0.335 -0.092 0
4 12小时 174 -0.02444 25 % 8.22 % -0.279 -0.075 0
(盈利)5 13小时 165 0.00257 25 % 5.89 % -0.182 -0.046 0
6 14小时 157 -0.0047 21.88 % 5.89 % -0.211 -0.05 0
(盈利)7 15小时 158 0.00042 25 % 5.26 % -0.194 -0.046 0
8 16小时 155 -0.0313 21.88 % 8.74 % -0.291 -0.077 0
9 17小时 147 -0.03151 18.75 % 8.53 % -0.305 -0.074 0
10 18小时 146 -0.03928 15.63 % 9.27 % -0.332 -0.082 0
11 19小时 147 -0.05313 12.5 % 9.99 % -0.387 -0.096 0
12 20小时 145 -0.04819 12.5 % 9.43 % -0.365 -0.09 0
13 21小时 139 -0.07268 9.38 % 11.7 % -0.454 -0.113 0
14 22小时 134 -0.06235 9.38 % 10.59 % -0.406 -0.101 0
15 23小时 133 -0.07351 6.25 % 11.23 % -0.459 -0.112 0
16 24小时 126 -0.0651 6.25 % 10.18 % -0.437 -0.102 0
# 问题:
如果不指定开单数量,直接用 BK、SK 开单,确实是按预期的现价成交。
但指定开单数量,也就是用BK(n手)、SK(n手)时,多单会开在那根k线的最高价,空单会开在那根k线的最低价。
这导致了在很多插针里开单后就要止损,但事实上在插针中是可以盈利的。
如果能按现价成交,数据会比上面的回测结果好一些。
这里的代码中,在开单时添加了前一根线的收盘价没突破的判断,减少插针的交易摩擦。转python时不需要判断收盘价,直接判断现价有没有突破就可以。
直接用「现价」来判断开单的代码在: https://www.fmz.com/m/edit-strategy/219733
*)
highest:=HHV(REF(H,2), LENGTH); //LENGTH周期内的最高价
lowest:=LLV(REF(L,2), LENGTH); //LENGTH周期内的最低价
up_line^^highest; //上轨
under_line^^lowest; //下轨
//开多单,递减加仓。1个头寸45张,是 1BTC 仓位的 5% 左右
BKVOL = 0 AND REF(C,1) >= highest AND NEW >= highest, BK(90); //前一根k线收盘价没突破,当前k线的现价突破新高,开单两个头寸;
BKVOL >= 90 AND REF(C,1) >= highest AND NEW > BKPRICE AND (NEW-BKPRICE)/BKPRICE >= 0.005, BK(45); //再突破新高,并且比前一次开单涨了0.5%,追加1个头寸
//开空单,递减加仓
SKVOL = 0 AND REF(C,1) <= lowest AND NEW <= lowest, SK(90);
SKVOL >= 90 AND REF(C,1) <= lowest AND NEW < SKPRICE AND (SKPRICE-NEW)/SKPRICE >= 0.005, SK(45);
//止盈多单
BKVOL > 90 AND NEW < BKPRICE, SP(BKVOL) ; //现价低于最后一次开仓价,止盈全部多单
//止损多单
BKVOL > 0 AND NEW < BKPRICEAV AND (BKPRICEAV-NEW)/BKPRICEAV >= 0.005, SP(BKVOL); //现价跌破全部仓位平均成本的 0.5% 就全部止损
//止盈空单
SKVOL > 90 AND NEW > SKPRICE, BP(SKVOL) ;
//止损空单
SKVOL > 0 AND NEW > SKPRICEAV AND (NEW-SKPRICEAV)/SKPRICEAV >= 0.005, BP(SKVOL);
MULTSIG(60,60,5,60);
template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6