
如圖
主圖K棒疊圖ATR通道
副圖為MACD
我希望當MACD出現黃金交叉時進場
並以出現MACD出現黃金交叉當下的ATR通到下軌的點位為停損點
以圖為例
出現MACD的黃金交叉後我買入進場
並且要以17086為停利點,17054為停損點
以下為我目前寫的
//-----------ATR-----------
// 宣告參數
input:period(20,"計算TrueRange的區間"),N(2,"N倍通道");
// 資料讀取筆數設定
settotalbar(period + 3);
value1=average(truerange,period);
value2=average(close,period);
value4=value2+N*value1;
value5=value2-N*value1;
//-----------MACD-----------
// 需告參數
input: FastLength(12, "DIF短期期數"), SlowLength(26, "DIF長期期數"), MACDLength(9, "MACD期數");
variable: difValue(0), macdValue(0), oscValue(0);
// 資料讀取筆數設定
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);
MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);
//-----------進場-----------
if position = 0 and difValue Crosses Above macdValue then setposition(1, market, label:="做多進場");
if position = 0 and difValue Crosses below macdValue then setposition(-1, market, label:="做空進場");
//-----------出場-----------
if position > 0 and filled > 0 then begin
if high >= value4 then begin
setposition(0, value4, label:="獲利出場");
end
else if low <= value5 then begin
setposition(0, value5, label:="虧損出場");
end ;
end else if Position < 0 and Filled < 0 then begin
if low <= value5 then begin
setposition(0, value5, label:="獲利出場");
end
else if high >= value4 then begin
setposition(0, value4, label:="虧損出場");
end;
end;
不過這樣寫
value4 和 value5 都是變數
隨著時間往後推它的點位都會不一樣
但我想要的是我進場時當下指標的點位當作我後面出場時的點位
我要如何修改呢?
3 評論