Товарищи. Решил ради практики закодить простейшее отображение поглощений. Но в итоге возникла проблема, что при смене таймфрейма на графике и возвращении на таймфрейм с пошлощением, алерт снова срабатывает. Нашёл вариант алертить только один раз за бар, но опять же всё обнуляется при переключении тф.
if (Bars != ThisBarTrade ) {
ThisBarTrade = Bars; // ensure only one trade opportunity per bar// Trade logic goes here
}
Вот сам код, без графических рисовалок, только логика. Как исправить?
ticket-3 специально, ТК торговля ведется как бы усредненной ценой по нескольким ордерам ) но как мне разделить Бай тикеты от селл тикетов ? чтоб я мог взять ордер который отрыт был 3 бая назад ) так же для селл
написал прогу, которая открывает шаблон (с нужными мне индикаторами и графическим объектом) при запуске, потом анализирует данные и торгует. когда я его просто запускаю на графике, все нормально работает. когда его запускаю в тестере, он работает только при визуализации. я так понимаю, шаблон можно загрузить только на визуально открытый график... поэтому в обычном режиме теста прога не работает, так как прогоняется просто по графику без загрузки шаблона... и как быть с оптимизацией? у меня немало параметров, и как-то очень не разумно каждый вариант прогонять в ручную с визуализацией.
помогите плиз)) как можно решить проблему с оптимизацией и шаблоном?
Только я не на MQL писал, а формально, вот ведь закавыка (:
А как это можно было определить?
Поскольку количество значений сильно ограничено, можно проверить прямым brute force'ом:
#property strict/******************************************************************************/void fun1(intconst A) {
Print("fun1()");
if (A == 0 || A == 1) {
Print("fun1 do!");
}
}
/******************************************************************************/void fun2(intconst A) {
Print("fun2()");
if (A != 2) {
Print("fun2 do!");
}
}
/******************************************************************************/void Гарантия_0_1_2(intconst A) {
switch (A) {
case0:
case1:
case2:
fun1(A);
fun2(A);
break;
default:
Print("Не соблюдены условия (теоремы)");
}
}
/******************************************************************************/voidOnStart() {
for (int A = 0, limit = 4; A < limit; A++) {
Print("Проверяем для A = ", A);
Гарантия_0_1_2(A);
}
}
Получаем:
22:52:38 Script 3 EURUSDm,H1: loaded successfully
22:52:383 EURUSDm,H1: initialized
22:52:383 EURUSDm,H1: Проверяем для A = 022:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun1 do!
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: fun2 do!
22:52:383 EURUSDm,H1: Проверяем для A = 122:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun1 do!
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: fun2 do!
22:52:383 EURUSDm,H1: Проверяем для A = 222:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: Проверяем для A = 322:52:383 EURUSDm,H1: Не соблюдены условия (теоремы)
22:52:383 EURUSDm,H1: uninit reason 022:52:38 Script 3 EURUSDm,H1: removed
Получается, что - равнозначны. Если бы значений было не 3, а, скажем, 3 миллиона, то можно было бы все равно поручить машине проверку - возвращать из функций результаты и сравнивать их. Если для всего диапазона расхождений не найдётся, значит, - равнозначны.
Если вместо переменной используется выражение, например, вызов функции, то равнозначность становится "равнозначностью с оговорками" из-за короткой схемы вычисления логических выражений.
Второй нет: нужно, чтобы после «line1 > 0», начался отсчет на каждом баре.
Что в принципе я и делал в советнике вот так:
if (line1 > 0 && time ==0){time=Time[i+0];}//сработало предварительное условие входа, записываем времяif (time > 0)shift=iBarShift(Symbol(),Period(),i+time);//находим индекс бара
и уже после «shift >= shet» срабатывает условие отрисовки.
Меняю внешние параметры переменной «shet», никакого изменения в индикаторе.
Можно ли загружать графики для тех.анализа,в МТ-4 - индексов S&P 500 Futures Chart , TA 25 Chart, и S&P 500 Chart если это возможно может подскажете как это сделать,может есть объяснение как загружать!
Может кто подскажет ,устанавливаю плагин GetTickerHistory в МТ-4,запускается,но загрузка не идёт,возможно ли загрузить внешние индексы другим способом.
Ну а может у кого-то уже есть готовый индюк iMAOnArray от RSI?
в кодобазе есть, надо лишь поискать
Подскажите плз как разделить тикеты для бая и селл отдельно ?
ticket=OrderSend("EURUSD",OP_SELL,SellLot,Bid,3,0,0,"",MAGICMA,0,Red);
else
{
OrderSelect(ticket-3,SELECT_BY_POS,MODE_TRADES);
OrderClose(ticket-3,SellLot,Ask,3,Red);
}
ticket-3 специально, ТК торговля ведется как бы усредненной ценой по нескольким ордерам ) но как мне разделить Бай тикеты от селл тикетов ? чтоб я мог взять ордер который отрыт был 3 бая назад ) так же для селл
Здравствуйте, други!) у меня такая проблема:
написал прогу, которая открывает шаблон (с нужными мне индикаторами и графическим объектом) при запуске, потом анализирует данные и торгует. когда я его просто запускаю на графике, все нормально работает. когда его запускаю в тестере, он работает только при визуализации. я так понимаю, шаблон можно загрузить только на визуально открытый график... поэтому в обычном режиме теста прога не работает, так как прогоняется просто по графику без загрузки шаблона... и как быть с оптимизацией? у меня немало параметров, и как-то очень не разумно каждый вариант прогонять в ручную с визуализацией.
помогите плиз)) как можно решить проблему с оптимизацией и шаблоном?
Зачот )))
Только я не на MQL писал, а формально, вот ведь закавыка (:
А как это можно было определить?
Поскольку количество значений сильно ограничено, можно проверить прямым brute force'ом:
Получаем:
Получается, что - равнозначны. Если бы значений было не 3, а, скажем, 3 миллиона, то можно было бы все равно поручить машине проверку - возвращать из функций результаты и сравнивать их. Если для всего диапазона расхождений не найдётся, значит, - равнозначны.
Если вместо переменной используется выражение, например, вызов функции, то равнозначность становится "равнозначностью с оговорками" из-за короткой схемы вычисления логических выражений.
Всем привет!
Сделал индикатор на основе другого индикатора.
Первый буфер считает, как надо.
Второй нет: нужно, чтобы после «line1 > 0», начался отсчет на каждом баре.
Что в принципе я и делал в советнике вот так:
и уже после «shift >= shet» срабатывает условие отрисовки.
Меняю внешние параметры переменной «shet», никакого изменения в индикаторе.
В чем может быть проблема?
Код индикатора:
Всем привет!
Сделал индикатор на основе другого индикатора.
Первый буфер считает, как надо.
Второй нет: нужно, чтобы после «line1 > 0», начался отсчет на каждом баре.
Что в принципе я и делал в советнике вот так:
и уже после «shift >= shet» срабатывает условие отрисовки.
Меняю внешние параметры переменной «shet», никакого изменения в индикаторе.
В чем может быть проблема?
Код индикатора:
Есть непонятки с прибавлением 0, но пробуйте так:
Доброго времени суток.
В терминале, если я дважды щелкаю мышью на линию ордера, то открывается окно модификации.
Но если на линии находится цена открытия одного ордера и тейк профит другого, то открывается последний измененный ордер.
Уважаемые Профи, подскажите есть ли в mql4 функция вызова окна модификации ордера путем клика мышью на нужном ордере в индикаторе?
Может кто подскажет ,устанавливаю плагин GetTickerHistory в МТ-4,запускается,но загрузка не идёт,возможно ли загрузить внешние индексы другим способом.
Заранее благодарен.