幫我看一下
我進場時會要固定我的進場價entryP
以及用entryP計算出來得停利停損winCL跟lossCL
在編譯上沒問題
不過讓交易系統下去跑
感覺是錯的
麻煩幫我看一下哪裡出問題
//--------------------------------------計算開始------------------------
var: winCL(0), lossCL(0), entryP(0);
input: QWE(2, "停利停損倍數");
// 條件判斷(進場)
condition1 = trueall(trueAll(xfmin_EMA("10",close,6) > xfmin_EMA("10",close,24) and xfmin_EMA("60",close,6) > xfmin_EMA("60",close,24) , 2), 2);
condition2 = trueall(trueAll(xfmin_EMA("10",close,6) < xfmin_EMA("10",close,24) and xfmin_EMA("60",close,6) < xfmin_EMA("60",close,24) , 2), 2);
if position=0 and filled = 0 then begin
if condition1 then begin//condition1
entryP = FilledRecordPrice(FilledRecordCount);
setposition(10, market, label:="【多單】 - 進場");
winCL = (entryP + 2*QWE*20);
lossCL = (entryP - 1*QWE*20);
value12 = winCL-entryP ;
end else
if condition2 then begin//condition2
entryP = FilledRecordPrice(FilledRecordCount);
setposition(-10, market, label:="【空單】 - 進場");
winCL = (entryP - 2*QWE*20);
lossCL = (entryP + 1*QWE*20);
value12 = entryP - winCL ;
end;
end;
// **停損或停利出場**
if position > 0 and filled > 0 then begin
// 當價格達到分批獲利1時
if position = 10 and close cross Over entryP + 0.2 * value12 then begin
setposition(8, market, label:="【多單】 - 分批獲利1");
// 停損位置不變
end
// 當價格達到分批獲利2時
else if position = 8 and close cross Over entryP + 0.4 * value12 then begin
setposition(6, market, label:="【多單】 - 分批獲利2");
lossCL = entryP; // 停損設定為初始進場價格
end
// 當價格達到分批獲利3時
else if position = 6 and close cross Over entryP + 0.6 * value12 then begin
setposition(4, market, label:="【多單】 - 分批獲利3");
lossCL = entryP + 0.2 * value12; // 停損設定為第一次分批獲利的價格
end
// 當價格達到分批獲利4時
else if position = 4 and close cross Over entryP + 0.8 * value12 then begin
setposition(2, market, label:="【多單】 - 分批獲利4");
lossCL = entryP + 0.4 * value12; // 停損設定為第二次分批獲利的價格
end
// 最後的停利
else if close cross Over winCL then begin
setposition(0, market, label:="【多單】 - 獲利");
end
// 停損平倉
else if close cross Under lossCL then begin
setposition(0, market, label:="【多單】 - 虧損");
end;
end;
if position < 0 and filled < 0 then begin
// 當價格達到分批獲利1時
if position = -10 and close cross Under entryP - 0.2 * value12 then begin
setposition(-8, market, label:="【空單】 - 分批獲利1");
// 停損位置不變
end
// 當價格達到分批獲利2時
else if position = -8 and close cross Under entryP - 0.4 * value12 then begin
setposition(-6, market, label:="【空單】 - 分批獲利2");
lossCL = entryP; // 停損設定為初始進場價格
end
// 當價格達到分批獲利3時
else if position = -6 and close cross Under entryP - 0.6 * value12 then begin
setposition(-4, market, label:="【空單】 - 分批獲利3");
lossCL = entryP + 0.2 * value12; // 停損設定為第一次分批獲利的價格
end
// 當價格達到分批獲利4時
else if position = -4 and close cross Under entryP - 0.8 * value12 then begin
setposition(-2, market, label:="【空單】 - 分批獲利4");
lossCL = entryP + 0.4 * value12; // 停損設定為第二次分批獲利的價格
end
// 最後的停利
else if close cross Under winCL then begin
setposition(0, market, label:="【空單】 - 獲利");
end
// 停損平倉
else if close cross Over lossCL then begin
setposition(0, market, label:="【空單】 - 虧損");
end;
end;
4 評論