以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  老师帮我改改,谢谢  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=180948)

--  作者:2P1158
--  发布时间:2020/6/30 15:26:48
--  老师帮我改改,谢谢

老师好,以下是个人编写的15分钟/30分钟周期,并且过滤掉盘整时不开新仓。

请帮助改成金字塔,谢谢


RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;

N:=BARSLAST(DATE<>REF(DATE,1))+1;

MA6:MA(C,6);

MA18:MA(C,18);

MA40:MA(C,40);

 

M1:=BARSLAST(CROSS(MA6,MA18)); //上一次条件满足金叉(后加)

M2:=BARSLAST(CROSS(MA18,MA6)); //上一次条件满足死叉(后加)

 

HH:=HHV(HIGH,6);

LL:=LLV(LOW,18);

HH1:=BARSLAST((HH > REF(HH,1)));

LL1:=BARSLAST((LL < REF(LL,1)));

 

(TIME>=0905&&TIME<1456||TIME>2105&&TIME<2255)&&CROSSUP(LL1,HH1),BPK;//

(TIME>=0905&&TIME<1456||TIME>2105&&TIME<2255)&&CROSSUP(HH1,LL1),SPK; //


//CROSSUP(MA6,MA18),BP;

//CROSSDOWN(MA6,MA18),SP;


DRAWTEXT(FILTER(((HH1 < REF(HH1,1)) AND (HH1 < LL1)),90),LOW,\'加多\',COLORRED);

DRAWTEXT(FILTER(((LL1 < REF(LL1,1)) AND (HH1 > LL1)),90),HIGH,\'加空\',COLORGREEN);


//CHECKSIG(BK,\'B\',5,\'C\',0,0); //设置BK信号执行方式为:K线走完前1秒下单,不进行复核

//CHECKSIG(SK,\'B\',5,\'C\',0,0); //设置SK信号执行方式为:K线走完前1秒下单,不进行复核

//CHECKSIG(SP,\'A\',0,\'C\',0,0); //设置SP信号执行方式为:出信号立即下单,不进行复核

//CHECKSIG(BP,\'A\',0,\'C\',0,0); //设置BP信号执行方式为:出信号立即下单,不进行复核

 

MULTSIG(0,0,1,5);

CLOSEMINUTE1<= 5,CLOSEOUT;


CLOSEMINUTEEVERY1(1) <= 5||CLOSEMINUTEEVERY1(4) <= 5,CLOSEOUT;

 

AUTOFILTER; //启用一开一平信号过滤机制


--  作者:FireScript
--  发布时间:2020/6/30 16:12:01
--  
 RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
N:=BARSLAST(DATE<>REF(DATE,1))+1;
MA6:MA(C,6);
MA18:MA(C,18);
MA40:MA(C,40);
M1:=BARSLAST(CROSS(MA6,MA18)); //上一次条件满足金叉(后加)
M2:=BARSLAST(CROSS(MA18,MA6)); //上一次条件满足死叉(后加)


HH:=HHV(HIGH,6);
LL:=LLV(LOW,18);
HH1:=BARSLAST((HH > REF(HH,1)));
LL1:=BARSLAST((LL < REF(LL,1)));

 

if (TIME>=130500 and TIME<185600  or TIME>10500 and TIME<25500)and CROSS(LL1,HH1) then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);    
end

if (TIME>=130500 and TIME<185600 or TIME> 10500 and TIME<25500) and CROSS(HH1,LL1) then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);    
end


DRAWTEXT(FILTER(((HH1 < REF(HH1,1)) AND (HH1 < LL1)),90),LOW,\'加多\',COLORRED);
DRAWTEXT(FILTER(((LL1 < REF(LL1,1)) AND (HH1 > LL1)),90),HIGH,\'加空\',COLORGREEN);

//MULTSIG(0,0,1,5);  设置软件交易时候固定轮询为5秒即可

//这部分是收盘前五分钟平仓
INPUT:X(3,1,200,1);//X表示分钟数
MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量

FOR I=0 TO 1 DO  //循环遍历每个收盘时间来进行判断,这里只判断最后一节和第一节 2个时间区间
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间距离收盘K时间    
IF     (abb<X*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<X*60) THEN MARK:=1;
END


if MARK  then //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);    
end







--  作者:2P1158
--  发布时间:2020/6/30 23:19:48
--  
老师好,
已将二楼全部内容加入作为新的指标后发现报错啊,

每日开平仓的时间,与我原来设定时间不一致哦

请老师验证一下哦 谢谢