想写一个像测试里出场规则那样,出场后就等下一个信号再开仓的模块,请客服或哪位高手帮帮忙一下!
如:上破10日高点平空做多,下破10日低点平多做空:
止损为5个基点止损!
假如现在是多单,下跌6个点后止损,止损后,又出现上破10日高点,此时不做多!
假如现在是多单,下跌6个点后止损,止损后,又出现下破10日低点,此时做空!再次上破10高点平空做多!
谢谢!
楼主指的10日高点是什么意思?10日最高点已经是最高价了,怎么去上穿?
不知道是不是这个意思
INPUT:N1(5,1,100,10),N2(10,1,120,10);
MA1:MA(C,N1);
MA2:MA(C,N2);
H1:HHV(H,N1);
L1:LLV(L,N2);
COND1:CROSS(C,H1);//上穿
COND2:CROSS(C,L1);//下破
开仓:BUY(COND1,1,MARKET);
个人感觉楼的条件有点不对。以下是我的理解 仅供参考(需建立两个指标):
指标test(第一个指标)
hh:ref(hhv(h,10),1);
ll:ref(llv(l,10),1);
(第二个指标)
{上破10日高点平空做多,下破10日低点平多做空
止损为5个基点止损!
假如现在是多单,下跌6个点后止损,止损后,又出现上破10日高点,此时不做多!
假如现在是多单,下跌6个点后止损,止损后,又出现下破10日低点,此时做空!
再次上破10高点平空做多!
}
variable:aa=0;
cc:c;
hh:stkindi('','test.hh',0,6);
ll:stkindi('','test.ll',0,6);
if aa=0 and cross(c,hh) then begin
sellshort(1,0,market);
buy(1,1,market);
aa:=1;
end
if aa=0 and cross(ll,c) then begin
sell(1,0,market);
buyshort(1,1,market);
aa:=1;
end
if aa=1 and holding>0 and c<enterprice-6*mindiff then
止损:sell(1,0,market);
aa:=2;
if aa=2 and cross(ll,c) then buyshort(1,1,market);
aa:=3;
if aa=3 and cross(c,hh) then
sellshort(1,0,market);
buy(1,1,market);
我的意思不是高点的问题,
是以下这个意思:(以下是日内的)
止损后,没有出现反向信号之前,再出现相同的信号,就过虑掉!
如多单,止损后,还没有出现空单信号之前再次出现多单信号过虑掉!
如多单止损后一个信号是空单,在空单信号平仓后出现的多单信号正常执行!
就像策略测试里的出场规则里测试一样,止损后就不会再开同方向的单,只有当天出现反方向的单平了后,同方想的单才会执行!
加TYPE(),会出现如昨天最后一单是平多的话,今天第一个信号是多单的话,这笔多单无法执行!