1.开盘前30分钟不交易
2.30分钟后,最高价和最低价的价差大于250,当日也不交易
3.30分钟后,价格第一次向上突破30分钟最高价,确定第一次做多(突破时并不马上做多,要等回调50元再进场)
30分钟后,价格第一次向下突破30分钟最低价,确定第一次做空(突破时并不马上做空,要等反弹50元再进场)
4.什么情况下进场做多?
第一次开仓做多是当最新价格当日第一次向上突破30分钟最高价格时(当前价格肯定就是最高价),按照(当前价格-50元),开多单。
那么之后的第二次、第三次......做多,是在什么情况下进场呢?
答:即在当前价格突破前一新高(是目前为止当日的最高价格时),按照(当前价格-50元),开多单。(注:只要有新高出现,就按照当前价格-50的指定价下单)
注意:当出现新高的时候,如果之前已有多单申报,但还没成交的时候,需要把未成交的申报撤掉,继续按(当前价格-50元)开新的多单。
5.什么情况下多单平仓?
一.止盈80出场;
二.止损75出场;
三.当持仓经历过大于等于50元的浮动盈利,又再一次回到开仓价位时,以开仓价平仓出场
当持仓经历过大于等于50元的浮动损失,又再一次回到开仓价位时,以开仓价平仓出场
6.什么情况下进场做空?(与做多正好完全相反)
第一次开仓做空是当最新价格当天第一次向下突破30分钟最低价格时(当前价格肯定就是最低价),按照(当前价格+50元),开空单。
之后的第二次、第三次......做空,是在只要当前价格突破前一新低(是当前的最低价格时),按照(当前价格+50元),开空单。。(注:只要有新低出现,就按照当前价格-50的指定价下单)
注意:当出现新低的时候,如果之前已有空单申报,但还没成交的时候,把未成交的申报撤掉,继续按(当前价格+50元)开新的空单。
7.什么情况下空单平仓?
一.止盈80出场;
二.止损75出场;
三.当持仓经历过大于等于50元的浮动盈利,又再一次回到开仓价位时,以开仓价平仓出场
当持仓经历过大于等于50元的浮动损失,又再一次回到开仓价位时,以开仓价平仓出场
8.当价格向上突破了开盘30分钟最高价位超过160元时,就算出现最新的最高价也不再做多了
当价格向下突破了开盘30分钟最低价位超过160元时,就算出现最新的最低价也不再做空了
9.到了下午14:58时,所有未平仓的持仓全部按市价平仓。
问题正在解决中
条件2.30分钟后,最高价和最低价的价差大于250,当日也不交易
这里的---最高价和最低价,具体指的是什么?指的是开盘前30分钟的最高价和最低价吗?
3.30分钟后,价格第一次向上突破30分钟最高价
这里的是开盘后 前30分钟最高价?
还是到本根K线之前前30周期的最高价?
30分钟后,最高价和最低价的价差大于250,当日也不交易,这里的最高价和最低价是指开盘前30分钟(9点-9点半)的最高价和最低价
30分钟后,价格第一次向上突破30分钟最高价,这里的最高价指的是开盘前30分钟(9点-9点半)最高价
程序说明
1 程序是使用在图表程序化交易中,使用1分钟K线,走完以根K线模式。
2 程序主要写了开多的功能,开空功能,您可以根据此程序套用添加上。
3 要求中的第5条的第三款要求,不能在标准版的图标交易里实现,只有专业版的后台交易里才可以达到您的要求。
4 程序供参考,有些细节以我的理解设定,不符合望自己修改。
//变量说明,h30、l30 是开盘前30分钟最高和最低价,h1、l1是当天最高价和最低阶,di是用于当天第一手的开仓
variable:h30=0,l30=0,h1=0,l1=0,di=0;
h1:=if(c>h1,c,h1);
l1:=if(c<l1,c,l1);
if CURRENTTIME>090000 and CURRENTTIME<093000 then
begin
h30:=if(h30>h,h30,h);
l30:=if(l30<l,l30,l);
end
if CURRENTTIME<093000 then exit; //1. 开盘前30分钟不交易
if CURRENTTIME>093000 and CURRENTTIME<145800 then
begin
//2. 30分钟后,最高价和最低价的价差大于250,当日也不交易
if ABS(h30-l30)>=250 then exit;
//3.30分钟后,价格第一次向上突破30分钟最高价,确定第一次做多(突破时并不马上做多,要等回调50元再进场)
if c>=h30 and di=0 then
begin
buy(1,1,limit,c-50),ignorecheckprice;
di:=1;
end
//30分钟后,价格第一次向下突破30分钟最低价,确定第一次做空(突破时并不马上做空,要等反弹50元再进场)
if c<=l30 and di=0 then
begin
buyshort(1,1,limit,c+50),ignorecheckprice;
di:=1;
end
//即在当前价格突破前一新高(是目前为止当日的最高价格时),按照(当前价格-50元),开多单
if c>=ref(h1,1) then buy(1,1,limit,c-50),ignorecheckprice;
// 目前使用的是图标交易程序,未成交的判断功能,要使用后台才可以实现,所以先忽略测单
//一.止盈80出场;
if OPENPROFIT>80*MINDIFF then SELL( holding>0,holding ,market );
//二.止损75出场;
if OPENPROFIT<REVERSE( 75*MINDIFF) then sellshort(holding<0,REVERSE(holding),market);
end
// 9. 到了下午14:58时,所有未平仓的持仓全部按市价平仓。
if CURRENTTIME>145800 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,REVERSE(holding ),market);
end
提点后修改了一下
//变量说明,h30、l30 是开盘前30分钟最高和最低价,h1、l1是当天最高价和最低阶,di是用于当天第一手的开仓
variable:di=0;
M:=BARSLAST(DATE<>REF(DATE,1) )+1;
h30:=VALUEWHEN(TIME<=093000,HHV(HIGH,M));
l30:=VALUEWHEN(TIME<=093000,LLV(LOW,M));
h1:ref(hhv(l,m),1);
l1:ref(llv(l,m),1);
if time<093000 then exit; //1. 开盘前30分钟不交易
if h30-l30>=250 then exit;
if time>093000 and time<145800 then
begin
//2. 30分钟后,最高价和最低价的价差大于250,当日也不交易
//3.30分钟后,价格第一次向上突破30分钟最高价,确定第一次做多(突破时并不马上做多,要等回调50元再进场)
if c>=h30 and di=0 then
begin
buy(holding=0,1,limit,c-50),ignorecheckprice;
di:=1;
end
//30分钟后,价格第一次向下突破30分钟最低价,确定第一次做空(突破时并不马上做空,要等反弹50元再进场)
if c<=l30 and di=0 then
begin
buyshort(holding=0,1,limit,c+50),ignorecheckprice;
di:=1;
end
//即在当前价格突破前一新高(是目前为止当日的最高价格时),按照(当前价格-50元),开多单
if c>=ref(h1,1) then buy(1,1,limit,c-50),ignorecheckprice;
// 目前使用的是图标交易程序,未成交的判断功能,要使用后台才可以实现,所以先忽略测单
//一.止盈80出场;
if OPENPROFIT>80*MINDIFF then SELL( holding>0,holding ,market );
//二.止损75出场;
if OPENPROFIT<REVERSE( 75*MINDIFF) then sellshort(holding<0,REVERSE(holding),market);
end
// 9. 到了下午14:58时,所有未平仓的持仓全部按市价平仓。
if time>145800 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,REVERSE(holding ),market);
end
if time>=150000 then di:=0;
非常感谢帮助
图表显示不对啊
指出来哪里有问题啊?