Спасибо. Я пробовал редактировать его, но я почти разбросал весь код. Как я могу отредактировать это, пожалуйста, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи или по цене открытия новой свечи. Или даже сказать ему, чтобы проверить последний бар, если условия были выполнены, то триггер покупки (не думаю, что это будет работать хорошо, но что я знаю).
Спасибо. Я пробовал редактировать его, но почти разбросал весь код. Как я могу отредактировать это, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи, либо по цене открытия новой свечи. Или даже сказать ему, чтобы он проверял последний бар, если условия были выполнены, то запускал покупку (не думаю, что это будет работать хорошо, но что я знаю).
Ваши объяснения очень запутанны. В таких случаях я рекомендую нарисовать картинку. На картинке покажите условие для сигнала.
Спасибо. Я пробовал редактировать его, но почти разбросал весь код. Как я могу отредактировать это, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи, либо по цене открытия новой свечи. Или даже сказать ему, чтобы он проверял последний бар, если условия были выполнены, то запускал покупку (не думаю, что это будет работать хорошо, но что я знаю).
Простой советник iRSI, версия1.006
Вот как советник работает сейчас: мы проверяем сигнал ТОЛЬКО В МОМЕНТ РОЖДЕНИЯ НОВОГО БАРА. Новый бар имеет индекс # 0, мы называем новый бар "Текущий бар". Пример сигнала на покупку: если два предыдущих бара (бар № 1 и бар № 2) находятся ниже линии "30", это сигнал на покупку:
Рис. 1. Простой советник iRSI, версия1.006
Код:
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//--- we work only at the time of the birth of new bardatetime time_0=iTime(Symbol(),Period(),0);
if(time_0==m_prev_bars)
return;
m_prev_bars=time_0;
//---double rsi_2=iRSIGet(2);
double rsi_1=iRSIGet(1);
if(rsi_2==EMPTY_VALUE || rsi_1==EMPTY_VALUE)
return;
//---if(rsi_2>Inp_RSI_Level_UP && rsi_1>Inp_RSI_Level_UP)
m_trade.Sell(1.0);
elseif(rsi_2<Inp_RSI_Level_DOWN && rsi_1<Inp_RSI_Level_DOWN)
m_trade.Buy(1.0);
}
Советник работает следующим образом: мы проверяем сигнал ТОЛЬКО В МОМЕНТ РОЖДЕНИЯ НОВОГО БАРА. Новый бар имеет индекс # 0, мы называем его "Текущий бар". Пример сигнала на покупку: если два предыдущих бара (бар № 1 и бар № 2) находятся ниже линии "30", это сигнал на покупку:
Рис. 1. Простой советник iRSI, версия1.006
Код:
Не смог заставить его работать... Это файл для советника, пожалуйста, помогите мне взглянуть на него, чтобы понять меня.
Я хочу, чтобы он проверял текущий бар до тех пор, пока не будут выполнены параметры или условия, и как только это произойдет, он обычно открывает покупку, но вместо этого я хочу, чтобы он удерживал эту заявку, а затем запускал покупку на открытии новой свечи или когда текущая свеча заканчивается (все то же самое).
Ваш советник проверяет бары за барами, то есть каждый бар показывает среднее значение, а я проверяю каждый тик своим советником, и как только тик на текущем баре выполнит мои условия, я хочу, чтобы покупка была запущена на следующем баре.
aodunusi: Не смог заставить его работать... Это файл для советника, пожалуйста, помогите мне взглянуть на него, чтобы понять меня.
Я хочу, чтобы он проверял текущий бар до тех пор, пока не будут выполнены параметры или условия, и как только это произойдет, он обычно открывает покупку, но вместо этого я хочу, чтобы он удерживал эту заявку, а затем запускал покупку на открытии новой свечи или когда текущая свеча заканчивается (все то же самое).
Ваш советник проверяет бары за барами, то есть каждый бар показывает среднее значение, а я проверяю каждый тик своим советником, и как только тик на текущем баре удовлетворяет моим условиям, я
Покупка срабатывает сразу после получения сигнала, а сигнал обычно медленный, поэтому я хочу отложить покупку с текущей свечи на следующую после выполнения условия. То есть я проверяю тики предыдущей свечи и, как только мое условие выполнено, я хочу отложить или задержать ордер на покупку или продажу до следующего бара, который откроется или когда закроется текущий бар (это одно и то же).
aodunusi : Не смог заставить его работать... Это файл для советника, пожалуйста, помогите мне посмотреть на него, чтобы понять меня.
Я хочу, чтобы он проверял текущий бар до тех пор, пока не будут выполнены параметры или условия, и как только это произойдет, он обычно открывает покупку, но вместо этого я хочу, чтобы он удерживал эту заявку, а затем запускал покупку на открытии новой свечи или когда текущая свеча заканчивается (все то же самое).
Ваш советник проверяет бары за барами, то есть каждый бар показывает среднее значение, а я проверяю каждый тик своим советником, и как только этот тик на текущем баре выполняет мои условия, я хочу, чтобы покупка была запущена на следующем баре.
Спасибо за помощь до сих пор
Простой советник iRSI, версия1.007
В данной версии: сигнал проверяется на каждом тике: как только сигнал получен, сразу останавливаем поиск сигнала и ждем нового бара. В момент рождения нового бара (если есть сохраненный сигнал) открываем позицию.
Gets history data of MqlRates structure of a specified symbol-period in specified quantity into the rates_array array. The elements ordering of the copied data is from present to the past, i.e., starting position of 0 means the current bar. If you know the amount of data you need to copy, it should better be done to a statically allocated...
Это самый простой пример: нет фильтра по символу, нет фильтра по магическому номеру, нет проверки минимального расстояния (уровня заморозки), нет цикла, гарантирующего удаление.
Используются торговые классы CPositionInfo и COrderInfo(Не путайте текущие отложенные ордера с позициями, которые также отображаются на вкладке "Торговля" панели "Инструменты" клиентского терминала).
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вам нужно переделать код: запрашивать данные не с одного бара, а с двух. И проверять условие не на одном баре - а на двух.
Так и было(#23 ) :
Будет:
Спасибо. Я пробовал редактировать его, но я почти разбросал весь код. Как я могу отредактировать это, пожалуйста, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи или по цене открытия новой свечи. Или даже сказать ему, чтобы проверить последний бар, если условия были выполнены, то триггер покупки (не думаю, что это будет работать хорошо, но что я знаю).
Спасибо. Я пробовал редактировать его, но почти разбросал весь код. Как я могу отредактировать это, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи, либо по цене открытия новой свечи. Или даже сказать ему, чтобы он проверял последний бар, если условия были выполнены, то запускал покупку (не думаю, что это будет работать хорошо, но что я знаю).
Спасибо. Я пробовал редактировать его, но почти разбросал весь код. Как я могу отредактировать это, чтобы добавить покупку на следующем баре, а не сразу, т.е. либо по цене закрытия текущей свечи, либо по цене открытия новой свечи. Или даже сказать ему, чтобы он проверял последний бар, если условия были выполнены, то запускал покупку (не думаю, что это будет работать хорошо, но что я знаю).
Простой советник iRSI, версия1.006
Вот как советник работает сейчас: мы проверяем сигнал ТОЛЬКО В МОМЕНТ РОЖДЕНИЯ НОВОГО БАРА. Новый бар имеет индекс # 0, мы называем новый бар "Текущий бар". Пример сигнала на покупку: если два предыдущих бара (бар № 1 и бар № 2) находятся ниже линии "30", это сигнал на покупку:
Рис. 1. Простой советник iRSI, версия1.006
Код:
Простой советник iRSI, версия1.006
Советник работает следующим образом: мы проверяем сигнал ТОЛЬКО В МОМЕНТ РОЖДЕНИЯ НОВОГО БАРА. Новый бар имеет индекс # 0, мы называем его "Текущий бар". Пример сигнала на покупку: если два предыдущих бара (бар № 1 и бар № 2) находятся ниже линии "30", это сигнал на покупку:
Рис. 1. Простой советник iRSI, версия1.006
Код:
Не смог заставить его работать... Это файл для советника, пожалуйста, помогите мне взглянуть на него, чтобы понять меня.
Не смог заставить его работать... Это файл для советника, пожалуйста, помогите мне посмотреть на него, чтобы понять меня.
Простой советник iRSI, версия1.007
В данной версии: сигнал проверяется на каждом тике: как только сигнал получен, сразу останавливаем поиск сигнала и ждем нового бара. В момент рождения нового бара (если есть сохраненный сигнал) открываем позицию.
Пример CopyRates
Используется первая форма вызова CopyRates:
Обратите внимание, что ArraySetAsSeries применяется к массиву ' rates' - в данном случае rates [0] соответствует самому правому бару на графике.
Полный код:
Результат:
Пример: удалить все отложенные ордера определенного типа.
Пример в виде скрипта: во входном параметре ' Delete all: ' задается тип отложенного ордера, а затем вызывается функция удаления 'DeleteOrders '
Это самый простой пример: нет фильтра по символу, нет фильтра по магическому номеру, нет проверки минимального расстояния (уровня заморозки), нет цикла, гарантирующего удаление.
Пример: Расчет позиций и отложенных ордеров
Код: Calculate Positions and Pending Orders.mq5
Используются торговые классы CPositionInfo и COrderInfo(Не путайте текущие отложенные ордера с позициями, которые также отображаются на вкладке "Торговля" панели "Инструменты" клиентского терминала).
Код:
Простой пример. Отображение значений индикатора iADX на графике
Это простой пример: как получить значения индикатора iADX. Для контроля полученные значения выводятся на экран.
Код:
Результат: