fbpx

ตอบกลับไปยัง: ระบบเทรดที่ออกด้วย trailing stop

#23044
mikan171
Participant

โค้ดประมาณนี้ก็ได้ครับ ผมตัดเฉพาะส่วนที่จำเป็นแล้ว

ลอง backtest กับ OSP ช่วง 1/1/2019 – 1/1/2020 ก็ได้ครับ ราคาเป็นขาขึ้น ถ้าตามเงื่อนไขจะเข้าได้หลายรอบ แต่น่าจะเพราะไม่ได้ออกด้วย sell signal จึงไม่มี Buy ครั้งต่อๆไป

SetOption( “InitialEquity”, 1000000 );
SetOption( “MaxOpenPositions”, 20 );
SetPositionSize(5, spsPercentOfEquity);

Buy = Cross(C, Ref(HHV(C, 150), -1)); // price cross up highest high price;
Sell = 0; // no use signal, exit by stop loss or trailing stop only

// STOP
ApplyStop( stopTypeLoss, stopModePercent, 10, 1 );
ApplyStop(stopTypeTrailing, stopModePoint, 3*ATR(20), 1, True, 0, 40 );

{ // Section H: Order type and Slippage
Slip = 1;
BuyPrice = SQBuySlippagePercent(O, Slip, True); // add slippage by 1% of high-low range
SellPrice = SQSellSlippagePercent(O, Slip, True); // add slippage by 1% of high-low range

Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);

SetTradeDelays(1, 1, 0, 0); // delay buy & sell by 1 bar
}

StylePrice = ParamStyle( “Adjusted Price”, styleCandle, maskAll );
upTrend = BarsSince(Buy) < BarsSince(Sell);
downTrend = BarsSince(Buy) > BarsSince(Sell);
Plot( C, “”, IIf( upTrend, SQColorSeaGreen(), SQColorPastelRed() ), StylePrice );
shape = Buy * shapeUpArrow + Sell * shapeDownArrow;
PlotShapes( shape, IIf( Buy, SQColorSeaGreen(), SQColorOrange() ), 0, IIf( Buy, Low, High ) );