Smaller stop loss than expected
Smaller stop loss than expected
04 Mar 2024, 17:17
Hello, I have a problem: my bot is setting smaller stop losses than expected. For example, the stop loss should be 12 pips below the close of a candle, but the bot sets it at 3.4 pips below. I have no idea what the problem is, but I imagine it has to do with when to use the addition (+) and subtraction (-) in the calculation of a stop loss.
[Parameter("Initial Stop Loss", DefaultValue = 10)]
public double SL { get; set; }
protected override void OnBarClosed()
{
MarketSeries series = MarketData.GetSeries(TimeFrame);
// Uzyskaj dane o ostatniej świeczce
double open = series.Open.LastValue;
double close = series.Close.LastValue;
double low = series.Low.LastValue;
double bodySize = Math.Abs(open - close);
// Sprawdź kolor świeczki
bool isBullish = close > open;
// Ustaw stop loss zgodnie z warunkiem
double stopLoss;
double candleBodySize = Math.Abs(MarketSeries.Close[index] - MarketSeries.Open[index]);
if (isBullish)
{
if (bodySize < 10 * Symbol.PipSize)
{
stopLoss = close - SL * Symbol.PipSize;
}
else
{
stopLoss = open - SL * Symbol.PipSize;
}
}
else
{
if (low - close <= 10 * Symbol.PipSize)
{
stopLoss = close + SL * Symbol.PipSize;
}
else
{
stopLoss = low - 10 * Symbol.PipSize + SL * Symbol.PipSize;
}
}
// Execute market order only when the conditions are met
ExecuteMarketOrder(TradeType.Buy, Symbol, InitialVolume, "Frann", SL, TP);
isAlreadyInTrade = true;
}
Replies
flappiyt
05 Mar 2024, 12:17
( Updated at: 05 Mar 2024, 13:28 )
RE: Smaller stop loss than expected
PanagiotisCharalampous said:
Hi there,
SL and TP should be set in pips. You seem to pass absolute prices instead.
Best regards,
Panagiotis
Hi Panagiotis
I am new to C# can you tell me how to make the program to calculate stop loss in pips instead off absolute prices?
@flappiyt
firemyst
08 Mar 2024, 01:50
RE: Smaller stop loss than expected
PanagiotisCharalampous said:
Hi there,
SL and TP should be set in pips. You seem to pass absolute prices instead.
Best regards,
Panagiotis
Where does he set the SL as a price instead of pips?
The variable “SL” is set as a parameter and when he opens a position, that's what he passes:
ExecuteMarketOrder(TradeType.Buy, Symbol, InitialVolume, "Frann", SL, TP);
“SL” isn't changed in the code he's provided.
Also, the “TP” is never set in the code he posted either.
@firemyst
PanagiotisCharalampous
05 Mar 2024, 06:46
Hi there,
SL and TP should be set in pips. You seem to pass absolute prices instead.
Best regards,
Panagiotis
@PanagiotisCharalampous