飛狐金魔方大交易師智能交易使用教程(8)-點數圖突破交易策略 [飛狐金魔方]
//-------金魔方智能交易公式--------------
//例8_1 點數圖突破交易策略
{策略:
1.價格升破點數圖最近幾列的最高點時平空開多
2.價格跌破點數圖最近幾列的最低點時平多開空
***點數圖的算法和畫法請問度娘***
}
input:
格值(30),轉向格(5),突破列數(3),偏移量(1);
const: 最大列數(10); //突破列數應小于此數
array: 極點值[最大列數](0); //上漲列為最高格值,下跌列為最低格值
variable: 轉向價(0),漲跌方向(0),
突破買價(99999),突破賣價(0);//初始化
if BarPos <= 1 then begin
轉向價 := Round(Close);
漲跌方向 := 0; //初始化為無方向
突破買價 := High + 偏移量;
突破賣價 := Low - 偏移量;
end
else begin
if 漲跌方向 = 0 then begin //尚未確定方向
if High >= 轉向價 + 格值 * 轉向格 then begin
極點值[0] := 轉向價 + 格值 * 轉向格;
漲跌方向 := 1; //上漲
end
else if Low <= 轉向價 - 格值 * 轉向格 then begin
極點值[0] := 轉向價 - 格值 * 轉向格;
漲跌方向 := -1; //下跌
end;
end
else if 漲跌方向 = 1 then begin //當前列為上漲
if High >= 極點值[0] + 格值 then begin //增加向上的X格子
while High >= 極點值[0] + 格值 do begin
極點值[0] := 極點值[0] + 格值;
轉向價 := 極點值[0] - 格值 * 轉向格; //抬高轉向價
end;
end
else if Low <= 轉向價 then begin //上漲轉為下跌
for n = 0 to 最大列數-1 do begin //數組移位
極點值[最大列數-n] := 極點值[最大列數-n-1];
end;
//以下使點數圖新增下跌列
極點值[0] := 轉向價;
漲跌方向 := -1; //轉為下跌
轉向價 := 極點值[0] + 格值 * 轉向格;
while Low <= 極點值[0] - 格值 do begin
極點值[0] := 極點值[0] - 格值;
轉向價 := 極點值[0] + 格值 * 轉向格;
end;
end;
end //當前列為上漲
else begin //當前列為下跌
if Low <= 極點值[0] - 格值 then begin //增加向下的O格子
while Low <= 極點值[0] - 格值 do begin
極點值[0] := 極點值[0] - 格值;
轉向價 := 極點值[0] + 格值 * 轉向格;
end;
end
else if High >= 轉向價 then begin //下跌轉為上漲
for n = 0 to 最大列數-1 do begin
極點值[最大列數-n] := 極點值[最大列數-n-1];
end;
極點值[0] := 轉向價;
漲跌方向 := 1;
轉向價 := 極點值[0] - 格值 * 轉向格;
while High >= 極點值[0] + 格值 do begin
極點值[0] := 極點值[0] + 格值;
轉向價 := 極點值[0] - 格值 * 轉向格;
end;
end;
end; //當前列為下跌 //根據最近若干列的極點值計算突破價位
value1:= 0;
value2:= 99999;
for n = 1 to 突破列數 do begin
if 極點值[n] > value1 then value1 := 極點值[n];
if 極點值[n] < value2 then value2 := 極點值[n];
end;
突破買價 := value1 + 偏移量;
突破賣價 := value2 - 偏移量;
end;
Buy('', DEFAULT, 突破買價, -1, OT_STOP);
SellShort('', DEFAULT, 突破賣價, -1, OT_STOP);
買線: 突破買價, Precision0;
賣線: 突破賣價, Precision0;
盈利因子: -GrossProfit/GrossLoss, Precision2, LineThick0;
盈虧比: -(GrossProfit/NumWinTrades)/(GrossLoss/NumLosTrades), Precision2, LineThick0;
勝率%: PercentProfit, Precision2, LineThick0;
凈利: NetProfit, Precision2,LineThick0;
當前連虧次數: NumConsecLosers, Precision0, LineThick0;
{注解:
1.用variable定義變量可增加可讀性,在本例其實可以省略
2.Precision指定輸出數值的小數位數
3.盈虧比=平均盈利/平均虧損,GrossLoss返回值為負數
}
點數圖算法的代碼比較復雜,如果每個涉及到點數圖的公式都包含那么多代碼會比較難看,我們是否可以把它做成公共代碼供其它公式調用呢?用傳統的調用指標公式的方法不太好使,而且一次調用只能返回一個結果,本例的點數圖就需要返回“突破買價”和“突破賣價”兩個結果,用戶能否自編函數,并且讓這個函數能同時返回多個結果呢?
敬請關注本攻略!
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容