Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет, Младен, как всегда, ты крут!
Terrance Используй Close[0] в этом случае. Почти каждый советник использует Close для этой цели, поэтому я думаю, что это сработает и для вас.
...
Если ваш советник исполняется только при начале бара, это может быть вызвано несколькими причинами:
Я заметил, что мой советник не работает между движениями цены на таймфрейме M1. Я знаю, что советник будет выполняться при каждом тике.
Но я видел, что он исполняется каждый раз, когда начинается новый бар.
Я неправильно понимаю?
Есть ли способ заставить советника активировать каждый тик?
Я пытаюсь контролировать прибыль и убытки, используя прибыль и убытки не в пунктах. Когда происходит всплеск, советник не закрывает ордер, когда достигает установки прибыли или убытка, пока не появится новый бар.
Кто-нибудь может помочь мне решить эту проблему.
Я новичок в кодировании советников.
Заранее спасибо.Спасибо, Младен.
Я попробую воспользоваться вашим предложением.
Приветствую богов кодинга,
Мне нужна помощь в поиске функции советника, которая контролирует выполнение отправки ордеров таким образом, что ордер не может быть открыт, если уже существует ордер по той же цене.
Простая логика: если цена открытия ордера и тип ордера = цене открытия существующего ордера и типу ордера, то выход и поиск следующего критерия входа.
Также мне нужна функция, которая предотвратит исполнение ордера, если он находится на расстоянии x пунктов от уже существующей цены.
Простая логика: если цена открытия ордера и тип ордера < цены открытия последнего ордера и типа + x пунктов, то выход и поиск следующего критерия входа.
Спасибо,
Pip
...
Попробуйте эти 2 функции .Оба возвращают true, если цена равна или если расстояние от цены некоторых текущих открытых ордеров находится в пределах указанного расстояния.
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (CompareDouble(OrderOpenPrice(),price)) return(true);
}
return(false);
}
//
//
//
//
//
bool existsAtApproximatePrice(int magicNumber, double price, double distance)
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (MathAbs(OrderOpenPrice()-price)< distance) return(true);
}
return(false);
}
//
//
//
//
//
bool CompareDouble(double val1, double val2)
{
return(NormalizeDouble(val1,Digits)==NormalizeDouble(val2,Digits));
}
Приветствую богов кодинга,
Мне нужна помощь в поиске функции эксперта, которая контролирует выполнение отправки ордеров таким образом, что ордер не может быть открыт, если уже существует ордер по той же цене.
Простая логика: если цена открытия ордера и тип ордера = цене открытия существующего ордера и типу ордера, то выход и поиск следующего критерия входа.
Также мне нужна функция, которая предотвратит исполнение ордера, если он находится на расстоянии x пунктов от уже существующей цены.
Простая логика: если цена открытия ордера и тип ордера < цены открытия последнего ордера и типа + x пунктов, то выход и поиск следующего критерия входа.
Спасибо,
PipЭто может быть по нескольким причинам, но наиболее распространенные:
Привет!
Спасибо за помощь!
Итак, если я правильно понял, если я вставлю TakeProfit и StopLoss в OrderSend как внешние "правила", этот советник будет работать правильно только на не-ECN брокерах?
извините за мой английский
...
Да
У ECN/STP брокеров вы должны открыть ордер со стоп лоссом и/или тейк профитом, установленным на 0, и когда ордер уже открыт, только тогда вы можете изменить стоп лосс и/или тейк профит.
Привет!
Спасибо за помощь!
Значит, если я правильно понял, если я вставлю TakeProfit и StopLoss в OrderSend как внешние "правила", этот советник будет работать только на не-ECN брокерах?
извините за мой английскийДа. У ECN/STP брокеров вы должны открыть ордер со стоп лоссом и/или тейк профитом, установленным на 0, и когда ордер уже открыт, только тогда вы можете изменить стоп лосс и/или тейк профит.
Спасибо еще раз, так... как я могу это исправить? извините.
...
Как я уже сказал, вы должны сделать это в 2 шага:
Таким образом, код должен быть изменен, чтобы выполнять работу в 2 шага, а не в один
Спасибо еще раз, так... как я могу это исправить? извините
Новичок в кодировании
Привет всем,
Я новичок в кодинге и медленно изучаю язык и синтаксис, но у меня возник вопрос о том, как MT4 обновляет переменные.
Я попытался создать простой советник, который отображает самую высокую прибыль по текущей открытой сделке и должен обновляться только при достижении нового максимума, но происходит то, что сумма движется вниз и вверх, как и прибыль, я не могу увидеть ошибку в логике кода.
Я проверяю, чтобы убедиться, что выбранная сделка все еще открыта
t_CloseTime=OrderCloseTime(); //возвращает 0, если ордер не закрыт
if(t_CloseTime==0) //Ордер закрыт, если не ноль.
{
if(OrderProfit() > LastProfitHigh) LastProfitHigh=OrderProfit();
if(LastProfitHigh >= MinProfit && MinProfitReached==false) MinProfitReached=true;
}//endif
Итак, если логика верна, почему эта переменная "LastProfitHigh" поднимается и опускается?
Спасибо за помощь.