请朋友们用两种模式写出下面公式(在一分K线):
高于开市后30分钟内最高价与最低价差的百分之90开多,低于开市后30分钟内最高价与最低价差的百分之10则开空.收市平仓.
简化一下就是 : 高于价差的百分之90开多,低于价差的百分之10则开空.收市平仓.
假设30分钟内最高价和最低价的价差为20个点,则:
高于18点开多,低于2点则开空.收市平仓.
低于2点是永远不成立,高于18点永远成立,于是,永远做多单。
这是什么逻辑?
谢楼上.应补充下.高低差的90% 再加上最低价,
这个应明白了吧?
最低价,是当前K线的最低价?
不好意思.我说得不明白.
再说一次.
1.找出开市后30分钟内最高价mh与最低价ml .
2.a :=(mh -ml)*0.9 +ml;
3 b :=(mh -ml)*0.1 +ml;
4 .从第31分钟开始,若高于a 则开多.若低于b则开空.收市平仓.
//开盘后前三十分钟最高最低价突破模型
//适用于1分钟周期
M:=BARSLAST(DATE<>REF(DATE,1) )+1;
h30:=VALUEWHEN(TIME<=093000,HHV(HIGH,M));
l30:=VALUEWHEN(TIME<=093000,LLV(LOW,M));
change:=h30 - l30;
//建立多头进场条件
long:=CLOSE>change*0.9+l30 AND TIME<145500 AND TIME>093000;
if long then
begin
sellshort(holding < 0, 0, thisclose);
buy(holding = 0, 1, thisclose);
end
//建立空头进场条件
short:=CLOSE<change*0.1+l30 AND TIME<145500 AND TIME>093000;
if short then
begin
sell(holding > 0, 0, thisclose);
buyshort(holding = 0, 1, thisclose);
end
//收盘前3分钟平仓
if time >= 145700 then
begin
sell(holding > 0, 0, thisclose);
sellshort(holding < 0, 0, thisclose);
end