龙听期货论坛's Archiver

龙听 发表于 2022-4-27 16:07

【日内时间周期交易系统每天只能进行一次交易设置】

让日间交易系统每天只能进行一次交易的设置
**** Hidden Message *****

这个是标准版,也就是白天只有交易的品种,若是有些品种也有夜盘就不行了。我重新修改一下,也可以让有夜盘的品种只限定多少次进场。

情景一:日内小周期的,在每天收盘时都会平掉,所以在新的交易日持仓为0的情况:[code]
Condition1 =(time>2100 and time[1]=1500) or (time[1]=1500 and time>0900);
If condition1 then value1 = 0;
If MarketPosition <> 0 then value1 = 1;
If value1 = 0 then Begin
{your instructions to buy/sell here}
end;
[/code]其实看一下,区别就是对开盘当根bar的判断。

只有白天盘的品种,中国时间早晨9.00开盘,收盘是当天下午15.00. 所以 加上两个判断方法,1,时间是不是大于9.00;2,上一根bar是不是15.00的bar;

有夜盘的品种, 开盘时间是前一天晚上21.00,收盘是当天下午15.00,所以判断也是两个条件,1,时间是不是大于21.00,2,上一根是不是15.00的bar;

所以只有用这个条件就可以定位到日线以下bar的操作周期中开盘时间的第一根bar。定位到后就将计数重置成0,就行了,比方说,我想设置一个变量lock,只有这个lock为0时才进行交易,也就是一天只交易一笔【进场为例】。就可以用下面的这个:[code]
Input:counts(1);
var:lock(0);
Condition1 =(time>2100 and time[1]=1500) or (time[1]=1500 and time>0900);
If condition1 then lock = 0;
If lock = 0 then Begin
{your instructions to buy/sell here}
lock =lock+1;
end;
[/code]当进场后呢,lock就变成1,然后就不能再交易了。当然出场不受这个限制。比方说对于趋势交易的,开盘后可能昨仓还有呢,正常平仓不受影响,只是开仓时仅允许开仓一次。当然 这里也可以通过设置一个次数限制,比方说只能开仓2次,则在进场时用到lock<2,那么只有lock等于0,1时才会允许开仓。一次达到2次时,就不能再开仓了。

页: [1]