以每天第一次五分钟开盘价点位为开仓条件,五分钟K线收盘价上涨做多,收盘价下跌做空
止盈5%,止损1% 不达到止盈或者止损就不再次开仓
若第一次开仓达到止盈止损后,第二次开仓条件就是行情回到每天第一次五分钟开盘价点位为开仓条件,
五分钟K线收盘价上涨做多,收盘价下跌做空止盈5%,止损1% 不达到止盈或者止损就不再次开仓
如此循环, 单子可以隔夜
p:VALUEWHEN(TODAYBAR=1,o);
buy(holding=0 and c>p,1,market);
buyshort(holding=0 and c<p,1,market);
if OPENPROFITPER>=0.05 or OPENPROFITPER<=-0.01 and holding<>0 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
代码如上,但是按照这个逻辑交易次数非常多。每次平仓之后,必然会开空或者开多,完全不存在空档。
这个不应该吧? 开仓条件会不会是错了?每次开仓后就只能平仓后才能再次开仓,而且再次开仓的点位也是和第一次开仓的点位相同的,第二日另算第二日的开仓点位
“第二次开仓条件就是行情回到每天第一次五分钟开盘价点位为开仓条件” 这个是指价格再次大于第一个K的开盘价?那这岂不是意味着再次开仓,必然是开多?
其实意思就是第二次开仓条件和第一次开仓条件一样,在第一次开仓的单子平仓后,如果价格再次回到第一根K的价格,收阳线开多,收阴线开空,不会必然开一个方向
“在第一次开仓的单子平仓后,如果价格再次回到第一根K的价格” 这个具体如何定义才算回到第一个K的价格。比如说第一个K的开盘价在当前K价格范围呢?相当于第一个K的价格在当前K最高最低价之间。
[此贴子已经被作者于2020/5/22 15:50:48编辑过]
只要是单根K的价格有达到就行,和你说的一样,最高价或者最低价之间就算
p:VALUEWHEN(TODAYBAR=1,o);
cd:h>=p and p>=l;//需要判断开盘K的开盘价是否在当前K范围内
buy(holding=0 and c>o and cd,1,marketr);
buyshort(holding=0 and c<o and cd,1,marketr);
浮动盈亏:OPENPROFITPER;//单位是%
if OPENPROFITPER>=5 or OPENPROFITPER<=-1 and holding<>0 then
begin
多头止损:sell(holding>0,holding,market);
空头止损:sellshort(holding<0,holding,market);
end