[原創]輪詢交易,信號反復,導致多次開平。我參考了個程序,看看能否行? [金字塔]
- 咨詢內容:
WARNING_DISABLE:4;
ss:=1; //手數
extgbdataset('t1_position',0);
//0表示沒有倉位,1表示持有多頭, -1表示持有空頭
extgbdataset('t1_holding',0);
//0表示沒有倉位,>0表示持有多頭, <0表示持有空頭
extgbdataset('t1_enterbarpos',0);//記錄其開倉的K線maa:ema(c,10);
bpk:=cross(c,maa);
spk:=cross(maa ,c);
//非最后一根K線退出
if not(islastbar) or workmode<>1 then exit;//如果當是最后一根k線,執行
IF islastbar and time<151000 then begin// 如果最后一根k線發生過開倉信號,則那一根k線不再交易
if extgbdata('t1_enterbarpos') = barpos then begin
goto continueline ;
end
//沒有持倉狀態
if extgbdata('t1_position')=0 and extgbdata('t1_holding')=0 then begin
if bpk then begin
buy(1,ss,c);
extgbdataset('t1_position',1);
extgbdataset('t1_holding',ss);
extgbdataset('t1_enterbarpos',barpos);
goto continueline ;
endif spk then begin
buyshort(1,ss,c);
extgbdataset('t1_position',-1);//程序化交易 m.kzuj.com.cn
extgbdataset('t1_holding',-ss);
extgbdataset('t1_enterbarpos',barpos);
goto continueline ;
end
end//沒有持倉狀態
//持有倉位狀態
//持有空頭
if bpk and extgbdata('t1_position')=-1 and extgbdata('t1_holding')<0 then beginsellshort(1,ss,c);
buy(1,ss,c);
extgbdataset('t1_position',1);
extgbdataset('t1_holding',ss);
extgbdataset('t1_enterbarpos',barpos);
goto continueline ;
end
//持有多頭
if spk and extgbdata('t1_position')=1 and extgbdata('t1_holding')>0 then beginsell(1,ss,c);
buyshort(1,ss,c);
extgbdataset('t1_position',-1);
extgbdataset('t1_holding',-ss);
extgbdataset('t1_enterbarpos',barpos);
goto continueline ;
end
END//if ISLASTBARif time>=151300 then begin
sell(extgbdata('t1_holding')>0,ss,c);
sellshort(extgbdata('t1_holding')<0,ss,c);
extgbdataset('t1_position',0);
extgbdataset('t1_holding',0);
endcontinueline@ 資產:tasset,linethick0;
position:=extgbdata('t1_position');
t1holding:=extgbdata('t1_holding');
debugfile('d:\debug\803555.txt','position=%.0f' ,position) ;
debugfile('d:\debug\803555.txt','t1holding=%.0f' ,t1holding) ;以上代碼能在金子塔里測試嗎?我用了,不能出信號。
- 金字塔客服: 要學會自己測試+調試
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容