Отправлено: 21.05.14 04:49. Заголовок: Вопрос по бинарам
Подскажите что добавить в советник чтобы ордер закрывался через нужное мне время (момент экспирации в бинарах) ? - для тестирования советника в тестере стратегий.
Подскажите что добавить в советник чтобы ордер закрывался через нужное мне время (момент экспирации в бинарах) ? - для тестирования советника в тестере стратегий.
Универсального способа не существует, т. к. каждая программа индивидуальна. Если же объяснить сам принцип, то он заключается в следующем: 1. В настроечные параметры советника добавляются один или два параметра, указывающие время открытия сделки. Например:
цитата:
input int i_startHour = 10; input int i_startMinute = 15;
Первый параметр указывает час времени старта, второй - минуты времени старта.
2. Блок программы, который осуществляет открытие сделки, обволакивается следующими условиями, проверяющими достижение указанного времени суток:
цитата:
static datetime lastOpenDay = 0; int neededMinutes = i_startHour * 60 + i_startMinute; if (lastOpenDay != iTime(NULL, PERIOD_D1, 0)) { int currentMinutes = TimeHour() * 60 + TimeMinute(); if (currentMinutes <= neededMinutes) { // Открытие сделки .... // Если успешно открылись: lastOpenDay != iTime(NULL, PERIOD_D1, 0); } }
Здесь статическая переменная lastOpenDay следит за тем, чтобы сделка не открылась более одного раза в сутки, при условии постоянной работы программы, без отключений.
Это лишь один из способов, который мне больше нравится. Но возможны и другие подходы.
Отправлено: 21.05.14 14:44. Заголовок: Ого. Я имел в виду д..
Ого. Я имел в виду другое. На одной валютной паре советник открывает ордер. Да записывает время и magic и пошёл отчёт времени. Там 15 мин. 30 мин. Как будет указано в специальной переменной. И как только он увидел это время закрывает ордер с этим magic. Как вот сам процесс проверки сделать. Может просто каждую секунду записывать и прибавлять ?
Ого. Я имел в виду другое. На одной валютной паре советник открывает ордер. Да записывает время и magic и пошёл отчёт времени. Там 15 мин. 30 мин. Как будет указано в специальной переменной. И как только он увидел это время закрывает ордер с этим magic. Как вот сам процесс проверки сделать. Может просто каждую секунду записывать и прибавлять ?
Старость, не радость... Я прочитал: "чтобы ордер открывался через нужное мне время".
Тем не менее, смысл это не меняет и даже немного упрощает алгоритм: 1. Остается. 2. После открытия ордера запоминаем его тикет (тикет возвращается функцией OrderSend). 3. Просто вставляем этот кусок кода в функцию start (OnTick в новом MQL4):
Отправлено: 21.05.14 18:02. Заголовок: Кстати, если нужно з..
Кстати, если нужно закрывать не очень много ордеров, то можно воспользоваться следующим простым советником - CloseByTime. В первом параметре указывается абсолютное дата/время, при наступлении которого следует закрыть ордер, а во втором - сам тикет, который указан в графе "Ордер" окна "Терминал" МТ4. Нужно лишь учитывать, что советник работает только по тикам. Поэтому, если с указанного времени до момента экспирации в терминал не поступит ни одного тика, то ордер закрыт не будет. То есть нужно делать некоторый запас по времени, чтобы после указанного времени успел прийти хотя бы один тик.
Эксперт можно запустить на нескольких графиках (с разными параметрами) и таким образом следить за несколькими ордерами. Символ закрываемого ордера и символ графика, к которому прикреплен советник, должны совпадать. Иначе ордер не сможет закрыться.
Отправлено: 21.05.14 19:00. Заголовок: Вот это отлично. БОЛ..
Извиняюсь. Я не корректно написал. Алгоритм нужен именно для тестера стратегий....Для отработки стратегии. Поставил в настройках эксперта время закрытия ордера и все.
В советнике который торгует на демо я добавил параметр в настройки. Он Добавляет в комментарии ордера время. Ордер открывается именно на это время. И закрывается автоматически.
В тестере стратегий соответственно так не получится.
Простой советник для закрытия к сожалению не пойдет. Дело в том что я торгую бинарными опционами в mt4 (Два брокера работают с mt4 на бинарах). А в бинарных опционах ордера открываются на определенное время, после истечении которого закрываются автоматически.
А для тестера стратегий только один советник. Чтобы открывал на определенное время и закрывал (имитация реальной работы). И соответственно наверное надо будет считать в переменную еще количество закрытых ордеров в плюсе. Это я думаю не сложно, сравнить открытый и закрытый. Сделка идет не по пунктам, а 70 % от выставленного ордера.
Так как бинары приобретаю все большую популярность - этот алгоритм думаю будет в тему...
Алгоритм нужен именно для тестера стратегий....Для отработки стратегии.
В этом случае поможет только первый вариант - встраивать приведенный код в код эксперта. Универсального решения здесь не получится, над каждой программой придется работать отдельно.
Уважаемый scriptong вопрос по комплексному советник у. У трёх индикаторов cci. Rsi. Dmarker. Сигналы выхода из зон перекупленности но в другие стороны. То есть если сверху вниз и по графикам если смотреть выход из зоны сверху и должен быть сигнал sell. А там buy. А как сделать чтобы сигнал был на вход в зону перекупленности? Эффективнее. Подскажите? Хотя бы для rsi.
Сигналы выхода из зон перекупленности но в другие стороны. То есть если сверху вниз и по графикам если смотреть выход из зоны сверху и должен быть сигнал sell. А там buy. А как сделать чтобы сигнал был на вход в зону перекупленности? Эффективнее. Подскажите? Хотя бы для rsi.
Нужно лишь поменять условия. Сейчас не буду рыться в соответствующих исходниках, но если было так:
цитата:
double rsi1 = iRSI(NULL, 0, period, price, 1); double rsi2 = iRSI(NULL, 0, period, price, 2); if (rsi1 < highLevel && rsi2 > highLevel) // Выход из зоны перекупленности { // Сигнал продажи }
то разворот прост:
цитата:
if (rsi1 > highLevel && rsi2 < highLevel) // Вход в зону перекупленности { // Сигнал чего-то }
Все даты в формате GMT
2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет