Есть может какая функция в MQL5??? Хочу понять почему такое сообщение получается 2021.02.08 21:29:20.876my_first_ea_sartrailing (BRN,M5)Alert: Запрос на установку ордера Sell не выполнен - код ошибки:4756
//--- собираем все вместеif(Sell_Condition_1 && Sell_Condition_2)
{
if(Sell_Condition_3 && Sell_Condition_4)
{
// есть ли в данный момент открытая позиция на продажу?if(Sell_opened)
{
Alert("Уже есть позиция на продажу!!!");
return; // не добавлять к открытой позиции на продажу
}
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type= ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
// анализируем код возврата торгового сервераif(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("Ордер Sell успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Sell не выполнен - код ошибки:",GetLastError());
return;
}
}
}
return;
}
Есть может какая функция в MQL5??? Хочу понять почему такое сообщение получается 2021.02.08 21:29:20.876my_first_ea_sartrailing (BRN,M5)Alert: Запрос на установку ордера Sell не выполнен - код ошибки:4756
Подскажите пожалуйста как понимать эту строчки в коде -- CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[]; Я понимаю так CParabolicStop и CNRTRStop это классы , * указатель, массивы SARTrailing[] и NRTRTrailing[] Вот толко что эти строчки значат? В статье этого советника https://www.mql5.com/ru/articles/134 написано что это --- Как это понять? И где именно эти массивы создаются? В массивы реально можно загружать классы? Или объекты класов? И для чего это с практической точки зрения?
//+------------------------------------------------------------------+//| Sample_TrailingStop.mq5 |//| MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"#include <Sample_TrailingStop.mqh> // подключение класса трейлинга//--- input parametersinputdouble SARStep = 0.02; // Шаг Parabolicinputdouble SARMaximum = 0.02; // Максимум Parabolicinputint NRTRPeriod = 40; // Период NRTRinputdouble NRTRK = 2; // Коэффициент NRTRstring Symbols[]={"EURUSD","GBPUSD","USDCHF","USDJPY"};
CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
ArrayResize(SARTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символовArrayResize(NRTRTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символов for(int i=0;i<ArraySize(Symbols);i++)
{ // для всех символов
SARTrailing[i]=new CParabolicStop(); // создание экземпляра класса CParabolicStop
SARTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,5,15+i*17,Silver,Blue); // инициализация экземпляра класса CParabolicStop if(!SARTrailing[i].SetParameters(SARStep,SARMaximum))
{ // установка параметров экземпляра класса CParabolicStop Alert("trailing error");
return(-1);
}
SARTrailing[i].StartTimer(); // запуск таймера//----
NRTRTrailing[i]=new CNRTRStop(); // создание экземпляра класса CNRTRStop
NRTRTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,127,15+i*17,Silver,Blue); // инициализация экземпляра класса CNRTRStop if(!NRTRTrailing[i].SetParameters(NRTRPeriod,NRTRK))
{ // установка параметров экземпляра класса CNRTRcStop Alert("trailing error");
return(-1);
}
NRTRTrailing[i].StartTimer(); // запуск таймера
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Deinit();
NRTRTrailing[i].Deinit();
delete(SARTrailing[i]);
delete(NRTRTrailing[i]);
}
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].DoStoploss();
NRTRTrailing[i].DoStoploss();
}
}
//+------------------------------------------------------------------+voidOnTimer()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Refresh();
NRTRTrailing[i].Refresh();
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam
)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].EventHandle(id,lparam,dparam,sparam);
NRTRTrailing[i].EventHandle(id,lparam,dparam,sparam);
}
}
//+------------------------------------------------------------------+
И если не сложно укажите где про эту звёздачку как про указатель написано *, в документации. Как то видел, но сча уже залистал учебник и не найти((((
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Понятия не имею... Задавал этот вопрос на форуме - ни одного ответа...
А в чем заключается не корректность данных? Визуально вроде бы совпадает с индикатором Volume+MA, пролистал на истории
Понятия не имею... Задавал этот вопрос на форуме - ни одного ответа...
Разница только в типе данных long и double
Разница только в типе данных long и double
Посмотрите Это. Возможно, это и не общий глюк, но и в частном случае напрягает...
А как получить это значение для другой валютной пары?
Подскажите, пожалуйста.
Что такое _Digits я понимаю.
А как получить это значение для другой валютной пары?
Подскажите, пожалуйста.
SYMBOL_DIGITS
Количество знаков после запятой
int
MqlTradeRequest mrequest ???
Есть может какая функция в MQL5??? Хочу понять почему такое сообщение получается 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Запрос на установку ордера Sell не выполнен - код ошибки:4756
Привет!!! Подскажите как вывести в журнал заполненную структуру
MqlTradeRequest mrequest ???
Есть может какая функция в MQL5??? Хочу понять почему такое сообщение получается 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Запрос на установку ордера Sell не выполнен - код ошибки:4756
https://www.mql5.com/ru/forum/327894
А здесь расшифровка: воткак программно убрать из окна диалоговое окно Alert?
И если не сложно укажите где про эту звёздачку как про указатель написано *, в документации. Как то видел, но сча уже залистал учебник и не найти((((