意思是当价格达到上根最低价是市价下单吗?写法
ll:ref(low,1);
buyshort(c=ll,1,market);
ll:ref(low,1)-0.5;
buyshort(c=ll,1,market);
c在k线没走完是表示最新价
您提到“ll:ref(low,1);
buyshort(c=ll,1,market);”
close在最新的k上面,就是当前品种的最新的行情数据。
MARKET和MARKETR只是在图表上显示的位置由区别,在实盘中效果是一样的
根据模拟盘观察,都是在K线走完后下单的,逐K模式,强调下我的语句判断是上根线满足开多或开空条件(比如某种CROSS),则下根线没走完但触发了比上根线高点或低点再+-2个点的价位,就以市价开仓;
现在的语句是并列条件,是不是改成IF THEN 才合理,
BUY(开多 and holding=0 and c>=(REF(high,1) + 2),1,MARKETR )
BUYSHORT ( 开空 AND holding=0 AND c<=(REF(LOW,1) -2),1,MARKETR);
这个“最新价”是K线走完才确定的么,还是要引入轮询?我一般在5K周期以上,
a:=REF(high,1);
b:=REF(LOW,1);
SELLSHORT(PK,0,THISCLOSE);
SELL(PD,0,THISCLOSE);
if zxk and KK and holding=0 then begin
BUYSHORT ( c<=(b -2),1,MARKET);
end
if zxd and Kd and holding=0,then begin
BUY( c>=(a + 2),1,MARKET );
end
这样写测试通过,但对不对?先平后开的排列对么?
1.if then 语句可以用来作为分支模块,你的这段代码其实没有必要。看个人使用习惯。
2.最近价就是当前的close。至于你要走完k,和固定时间间隔,是你自己决定通过什么样开仓方式检测信号,
3.你策略中不要使用中文的输入法,黄色不应该有的,红色是中文的
a:=REF(high,1);
b:=REF(LOW,1);
SELLSHORT(PK,0,THISCLOSE);
SELL(PD,0,THISCLOSE);
if zxk and KK and holding=0 then begin
BUYSHORT ( c<=(b -2),1,MARKET);
end
if zxd and Kd and holding=0, then begin
BUY( c>=(a + 2),1,MARKET );
end
我也觉得这样改了好像和IF条件里的AND逻辑没什么区别,是我不理解轮询吧;
在哪里改为轮询呢,信号线(比如某种CROSS)出来后(比如5分钟K ),下一个5分钟内用什么轮询方法,只要在这个周期内突破前高的+2点就做多?