Salut à tous,
j'arrive a passer l'ordre avec un takeprofit et un stoploss de 20 en utilisant ta technique ci-dessous or Sur la plate forme FxPro, le tp et sl affiche 200 et -200 avec un lot de 1. Y aurait il un moyen pour qu'il affiche entre 20 et -20, pour avoir une précision a 5 chiffre après la virgule sur le SL et TP. et si on met un écart plus grand ça met une erreur 130 car je préféré mettre 50 en tp.
j'arrive a passer l'ordre avec un takeprofit et un stoploss de 20 en utilisant ta technique ci-dessous or Sur la plate forme FxPro, le tp et sl affiche 200 et -200 avec un lot de 1. Y aurait il un moyen pour qu'il affiche entre 20 et -20, pour avoir une précision a 5 chiffre après la virgule sur le SL et TP. et si on met un écart plus grand ça met une erreur 130 car je préféré mettre 50 en tp.
Code
#import "stdlib.ex4"
string ErrorDescription(int error_code);
#import
#include <stderror.mqh>
int stoploss = 20;
bool buySignal, sellSignal, buyActive, sellActive;
double orderLot;
double factor = Point*MathPow(10, Digits % 2);
int minStop = MarketInfo(Symbol(), MODE_STOPLEVEL) * factor;
int slippage = 3;
int magicNumber = 4537;
void openNewTrade() {
double sl;
int error;
if (buySignal) {
sl=Ask - (stopLoss * factor);
if (Ask - sl < minStop)
sl=Ask - minStop;
OrderSend(Symbol(), OP_BUY, orderLot, ask, slippage, NormalizeDouble(sl, Digits), 0, "Commentaire EA", magicNumber, 0);
error = GetLastError();
if (error == ERR_NO_ERROR)
buyActive = true;
else
Print("BUY ", orderLot, "@", ask, " sl:", d2s(sl, Digits)," fail: ", ErrorDescription(error));
}
if (sellSignal) {
sl=Bid + (stopLoss * factor);
if (sl - Bid < minStop)
sl=Bid + minStop;
OrderSend(Symbol(), OP_SELL, orderLot, Bid, slippage, NormalizeDouble(sl, Digits), 0, NAME+" "+VERSION+" "+sPeriod, magicNumber, 0);
error = GetLastError();
if (error == ERR_NO_ERROR)
sellActive = true;
else
Print("SELL ", orderLot, "@", Bid, " sl:", d2s(sl, Digits)," fail: ", ErrorDescription(error));
}
}