Большое спасибо за подсказку- попробовал сделать то, что рекомендуеет- получилось вот так.
Попробовал провести тест- ошибка 130 всё равно присутствует.Причём в начале етста идёт прямо батарея ошибки 130, а потом по одной и стоп начинает тралиьтся как-то через раз. Что ещё надо поправить, чтобы ошибки исчезли? Или я сейчас что не так прикрутил и сделал?
ещё есть STOP_LEVEL - ближе него к текущей цене стоп поставить нельзя. Что вполне возможно и происходит в самом начале
PS/ если делаете тралы, то как-то регулируйте шаг(в пунктах) и частоту(в секундах) тралов. Тралить каждый пункт или каждую секунду глупо и чревато последствиями (и советник начнёт тормозит и от сервера можно получить бан). И заодно уж - если тралите стопы, обязательно проверяйте их сработку. Stop (и даже Limit или Take)может и неисполнится.
PPS/ а вообще, в "боевых" советниках тралы (стопы/тейки/промежуточные цели etc) делаются виртуальными, отрабатываются на терминале и только время от времени синхронизируются на сервер (превращаются в StopLoss TakeProfit позиции или соотв.лимитки).
DanilaMactep #: 130 при ордер сенде получается, когда стоп ставлю по максимуму минимуму икс свечей. Но попробовал пеерключить стоп и профит чтобы ставился в пунктах- поставил 3000 пунктов стопу и профиту, включил трал и ошибка ордер модифай 130 всё равно есть((((
Там еще проверьте какой тип исполнения у вашего счета позиций. Если маркет то там нельзя одновременно с открытием ставить сл и тр.
Т.е. вы сначала входите с 0 левыми значениями. А потом уже после открытия модифицируете на нужные уровни выставляете сл и тр через модификацию позиции. Естественно проверяете чтобы были не ближе предельно допустимых значений.
Всем ещё раз добрый день. В своём Граале, я устранил ошибку 130 при открытии ордеров- протестировал просто открытие ордеров, без трейлинг стопа. Ордера открываются без ошибок. Включаю трал, и тестирую с теми же параметрами открытия ордеров- открываются ордера без ошибок, а вот трал вызывает ошибку ордер модефай 130. Причём в результатах, есть модификация ордеров- то есть трал не совсем всегда не работает.
//-ФУНКЦИЯ ДИНАМИЧЕСКОГО РАСЧЁТА ТРЕЙЛИНГ СТОПА С ПОМОЩЬЮ АТР НАЧАЛО----------------------+void f___dynamic_calculation_of_trailing_stop_by_atr()
{
double lokal_atr = iATR(Symbol(), Period_for_work_atr_tral, Period_atr, 1);
double avg_atr = iMA(Symbol(), Period_for_work_atr_tral, Period_atr, 1, MODE_SMA, PRICE_CLOSE, 0);
// Проверка значений ATRif (!MathIsValidNumber(lokal_atr) || !MathIsValidNumber(avg_atr) || lokal_atr <= 0 || avg_atr <= 0)
{
Print("Ошибка получения ATR или SMA, значения некорректны!");
return;
}
// РЕКОМЕНДАЦИЯ С ФОРУМА: Адаптивный коэффициент с логарифмическим сглаживаниемdouble volatility = lokal_atr / avg_atr;
double atr_multiplier = 1.5 + MathLog(volatility + 1.0);
atr_multiplier = MathMax(0.5, MathMin(5.0, atr_multiplier)); // Ограничиваем от 0.5 до 5.0// Получаем stopLevel брокераdouble stopLevel = stoplevel * Point;
int digits = (int)MarketInfo(Symbol(), MODE_DIGITS); // РЕКОМЕНДАЦИЯ С ФОРУМА: Исправление типа// Перебираем все открытые ордераfor (int i = OrdersTotal() - 1; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
int orderType = OrderType();
double new_stop_loss = 0;
double old_stop_loss = OrderStopLoss();
if (orderType == OP_SELL)
{
double min_stop_loss = Ask + stopLevel;
new_stop_loss = MathMin(OrderOpenPrice() - (lokal_atr * 0.5), Ask + (lokal_atr * atr_multiplier));
new_stop_loss = NormalizeDouble(new_stop_loss, digits); // РЕКОМЕНДАЦИЯ С ФОРУМА: Нормализацияif (new_stop_loss < OrderOpenPrice() && new_stop_loss > min_stop_loss)
{
if (new_stop_loss != old_stop_loss)
{
bool result = OrderModify(OrderTicket(), OrderOpenPrice(), new_stop_loss, OrderTakeProfit(), 0, clrNONE);
if (result)
Print("Трейлинг-стоп ATR обновлён для SELL: ", OrderTicket(), " | Новый SL: ", new_stop_loss, " | ATR множитель: ", atr_multiplier);
elsePrint("Ошибка обновления трейлинг-стопа SELL: ", GetLastError());
}
}
}
if (orderType == OP_BUY)
{
double max_stop_loss = Bid - stopLevel;
new_stop_loss = MathMax(OrderOpenPrice() + (lokal_atr * 0.5), Bid - (lokal_atr * atr_multiplier));
new_stop_loss = NormalizeDouble(new_stop_loss, digits); // РЕКОМЕНДАЦИЯ С ФОРУМА: Нормализацияif (new_stop_loss > OrderOpenPrice() && new_stop_loss < max_stop_loss)
{
if (new_stop_loss != old_stop_loss)
{
bool result = OrderModify(OrderTicket(), OrderOpenPrice(), new_stop_loss, OrderTakeProfit(), 0, clrNONE);
if (result)
Print("Трейлинг-стоп ATR обновлён для BUY: ", OrderTicket(), " | Новый SL: ", new_stop_loss, " | ATR множитель: ", atr_multiplier);
elsePrint("Ошибка обновления трейлинг-стопа BUY: ", GetLastError());
}
}
}
}
}
}
}
//-ФУНКЦИЯ ДИНАМИЧЕСКОГО РАСЧЁТА ТРЕЙЛИНГ СТОПА С ПОМОЩЬЮ АТР КОНЕЦ----------------------+
Прошлые рекомендации в код я вроде прикрутил, может что-то не правильно пришпандорил? Про тип открытия ордеров я без понятия, но сейчас открытие 100% без ошибок. Подскажите пожалуйста, как эту Грааль машину завести? :-) :-) ;-)
Всем ещё раз добрый день. В своём Граале, я устранил ошибку 130 при открытии ордеров- протестировал просто открытие ордеров, без трейлинг стопа. Ордера открываются без ошибок. Включаю трал, и тестирую с теми же параметрами открытия ордеров- открываются ордера без ошибок, а вот трал вызывает ошибку ордер модефай 130. Причём в результатах, есть модификация ордеров- то есть трал не совсем всегда не работает.
Прошлые рекомендации в код я вроде прикрутил, может что-то не правильно пришпандорил? Про тип открытия ордеров я без понятия, но сейчас открытие 100% без ошибок. Подскажите пожалуйста, как эту Грааль машину завести? :-) :-) ;-)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Большое спасибо за подсказку- попробовал сделать то, что рекомендуеет- получилось вот так.
Попробовал провести тест- ошибка 130 всё равно присутствует.Причём в начале етста идёт прямо батарея ошибки 130, а потом по одной и стоп начинает тралиьтся как-то через раз. Что ещё надо поправить, чтобы ошибки исчезли? Или я сейчас что не так прикрутил и сделал?
ещё есть STOP_LEVEL - ближе него к текущей цене стоп поставить нельзя. Что вполне возможно и происходит в самом начале
PS/ если делаете тралы, то как-то регулируйте шаг(в пунктах) и частоту(в секундах) тралов. Тралить каждый пункт или каждую секунду глупо и чревато последствиями (и советник начнёт тормозит и от сервера можно получить бан).
И заодно уж - если тралите стопы, обязательно проверяйте их сработку. Stop (и даже Limit или Take)может и неисполнится.
PPS/ а вообще, в "боевых" советниках тралы (стопы/тейки/промежуточные цели etc) делаются виртуальными, отрабатываются на терминале и только время от времени синхронизируются на сервер (превращаются в StopLoss TakeProfit позиции или соотв.лимитки).
Вопрос. Почему компилятор пишет что не объявлен параметр "'FALSE' - undeclared identifier"
когда у меня всё объявлено
Вопрос. Почему пишет компилятор пишет мне, что не объявлен параметр "'FALSE' - undeclared identifier"
когда у меня всё объявлено
Вопрос. Почему компилятор пишет что не объявлен параметр "'FALSE' - undeclared identifier"
когда у меня всё объявлено
набираете на английской раскладке клавишу "f" редактор подсказывает false другими буквами нельзя и так давно 5 и 4
130 при ордер сенде получается, когда стоп ставлю по максимуму минимуму икс свечей. Но попробовал пеерключить стоп и профит чтобы ставился в пунктах- поставил 3000 пунктов стопу и профиту, включил трал и ошибка ордер модифай 130 всё равно есть((((
Всем ещё раз добрый день. В своём Граале, я устранил ошибку 130 при открытии ордеров- протестировал просто открытие ордеров, без трейлинг стопа. Ордера открываются без ошибок. Включаю трал, и тестирую с теми же параметрами открытия ордеров- открываются ордера без ошибок, а вот трал вызывает ошибку ордер модефай 130. Причём в результатах, есть модификация ордеров- то есть трал не совсем всегда не работает.
Прошлые рекомендации в код я вроде прикрутил, может что-то не правильно пришпандорил? Про тип открытия ордеров я без понятия, но сейчас открытие 100% без ошибок. Подскажите пожалуйста, как эту Грааль машину завести? :-) :-) ;-)
Всем ещё раз добрый день. В своём Граале, я устранил ошибку 130 при открытии ордеров- протестировал просто открытие ордеров, без трейлинг стопа. Ордера открываются без ошибок. Включаю трал, и тестирую с теми же параметрами открытия ордеров- открываются ордера без ошибок, а вот трал вызывает ошибку ордер модефай 130. Причём в результатах, есть модификация ордеров- то есть трал не совсем всегда не работает.
Прошлые рекомендации в код я вроде прикрутил, может что-то не правильно пришпандорил? Про тип открытия ордеров я без понятия, но сейчас открытие 100% без ошибок. Подскажите пожалуйста, как эту Грааль машину завести? :-) :-) ;-)
Помогите разобраться с буферными индикаторами если можно
Вот оригинал в мт4
А вот что получилось
Там где жёлтым цветом, у меня есть сомнение в правильности кода.Помогите разобраться с буферными индикаторами если можно
Здесь не помогают с декомпилами.