inputint StopLoss=499; // Stop Lossinputint TakeProfit=999; // Take Profitinputint EA_Magic=12345; // Magic Number советникаinputdouble Lot=0.1; // Количество лотов для торговлиintOnInit()
{
//--- Для работы с брокерами, использующими 5-ти значные котировки,//--- умножаем на 10 значения SL и TP
STP = StopLoss;
TKP = TakeProfit;
if(_Digits==5 || _Digits==3)
{
STP = STP*10;
TKP = TKP*10;
}
return(0);
}
voidOnTick()
{
//---MqlTick latest_price; // Будет использоваться для текущих котировокSymbolInfoTick(Symbol(),latest_price); // Получаем текущие ценыMqlTradeRequest mrequest; // Будет использоваться для отсылки торговых запросовMqlTradeResult mresult; // Будет использоваться для получения результатов выполнения торговых запросов
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена ask
mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type = ORDER_TYPE_BUY; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
MqlTradeRequest mrequest={0}; // Будет использоваться для отсылки торговых запросовMqlTradeResult mresult={0}; // Будет использоваться для получения результатов выполнения торговых запросов
而没有 "如果 "呢?
你好,我不明白为什么止损点不显示?
首先,需要进行初始化。
其次,放置sl和tp的能力取决于经纪人设置的市场订单执行模式。查阅《手册》中有多少种模式,并检查经纪人设置的是哪种模式。
首先,需要进行初始化。
其次,放置sl和tp的能力取决于经纪人设置的市场订单执行模式。查阅《手册》中有多少种这样的模式,并检查经纪人设置的是哪种模式。
我已经通过ZeroMemory(mrequest)清零了。
我不太了解订单执行 模式,阿尔帕里经纪人,我认为一切都很标准。该死的胡说八道,不愿意,就这样。我已经尝试过使用sl和tp,它显示的是当前价格+sl,我想这是可以的。
我通过ZeroMemory(mrequest)清零了。
我不太了解订单执行 模式,阿尔帕里经纪人,我认为一切都很标准。该死的,这不管用,我就是不想做。我已经尝试过使用sl和tp,它显示的是当前价格+sl,我想这是可以的。
我不关注Alpari,但我认为所有你提到的不设置水平的问题都与Alpari有关。试着在MQ模拟账户上下单,你就会好起来。
关于订单执行模式。您正在使用https://www.mql5.com/ru/docs/trading/ordersend。请仔细阅读指南的这一部分:https://www.mql5.com/ru/docs/constants/structures/mqltraderequest,并 自己回答:"市场订单有多少种执行模式"。如果你不能回答这个问题,请问。
开发者还没有提供在日志信息中反映出在市场执行和交易所执行模式下无法设置sl和tp水平的可能性。而且没有必要这样做。程序员应确定经纪人设置的模式。