Почему в кодовой базе нет полного эксперта? - страница 4

 

Некоторые вещи, которые можно добавить в качестве опций советника:

- вычисление уникального магического числа, возможно, чтобы оно давало одинаковый результат при изменении брокером названия символа (например, с "EURUSD" на "EURUSD.m")

- опции управления ордерами (трейлинг-стоп, безубыточность (в пунктах или других величинах, таких как psar, x bars high/low, ma и т.д.), закрытие ордера)

- обширная обработка информации об ордере по тикету ордера (для чего текстовый (или csv) файл кажется наиболее простым подходящим способом). GV ограничен, OrderComment() может быть изменен брокером.

 
Создание на основе IsNYOnDst
datetime TimeSrvToNY(datetime timeSrv=EMPTY){      // Server time to NY time
   if(timeSrv == EMPTY) timeSrv = timeCur_srv;
      #define NY_TZ_STD -5                   // NY is UTC-5 (STD) or UTC-4 (DST)
   int utcToNY = NY_TZ_STD + IsNYonDST(timeSrv);
   return(TimeSrvToUTC(timeSrv) + utcToNY * 3600);  // Previous called TimeGMT
}
datetime TimeNyToSrv(datetime timeNY){
   int utcToNY = NY_TZ_STD + IsNYonDST(timeNY);
   return( TimeUtcToSrv(timeNY - utcToNY * 3600) ); // Previous called TimeServer
}
 
WHRoeder, вы обновляете ссылку на скачивание или нам нужно вручную "патчить" источник WHRea со всеми обновлениями, которые вы предоставляете в этой теме?
 
Вы не можете обновлять сообщения, если они устарели на несколько дней.
 
Понятно... Не могли бы вы тогда снова разместить здесь самую последнюю версию?
 
mbirrell:

Я немного опасаюсь делиться своими пользовательскими индикаторами и советниками, потому что если я это сделаю, и все начнут их использовать, они перестанут работать... Кто-нибудь еще согласен?

Я знаю, что это звучит немного эгоистично... но когда я доберусь до 5 миллионов, я поделюсь ;-)

На самом деле, если все будут использовать вашу Ea, рыночная цена будет либо нулевой, либо бесконечной. Каждый захочет купить или продать в одно и то же время.
 

Здравствуйте ребята, достаточно ли примера из учебника MQL4, если нам нужно простое и общее решение?

Мой советник торгует и делает расчеты на бар, а не на тик.


int Fun_Error(int Error) // Функция обработки ошибок
{
switch(Error)
{// Не критичные ошибки
case 4: Alert("Торговый сервер занят, попробуем еще раз...");
Sleep(3000);// Простое решение
return(1);// Выход из функции
case 135:Alert("Цена изменилась. Повторная попытка...");
RefreshRates();// Обновить ставки
return(1);// Выход из функции
case 136:Alert("Цены нет. Ждем нового тика...");
while(RefreshRates()==false) // Дождаться нового тика
Sleep(1);// Пауза в цикле
return(1);// Выход из функции
case 137:Alert("Брокер занят, попробуем еще раз...");
Sleep(3000);// Простое решение
return(1);// Выход из функции
case 146:Alert("Торговая подсистема занята. Повторная попытка...");
Sleep(500);// Простое решение
return(1);// Выход из функции
// Критические ошибки
case 2: Alert("Обычная ошибка.");
return(0);// Выход из функции
case 5: Alert("Старая версия терминала.");
Work=false;// Завершение работы
return(0);// Выход из функции
case 64: Alert("Счет заблокирован.");
Work=false;// Завершаем операцию
return(0);// Выход из функции
case 133:Alert("Торговля запрещена.");
return(0);// Выход из функции
case 134:Alert("Недостаточно средств для выполнения операции.");
return(0);// Выход из функции
default: Alert("Произошла ошибка: ",Error); // Другие варианты
return(0);// Выход из функции
}
}

 

Это может стать основой для действительно хорошей оболочки /шаблона советника: WHR - опытный кодер MT.

Изначально он был задуман как источник полезного кода советника, это не "plug and play" Shell.

Я обновил этот советник несколькими способами:

1. Я изменил синтаксис, имена переменных, чтобы он компилировался в текущих версиях MQL4.
Также добавил очень незначительные изменения, чтобы он компилировался, прокомментировал их "Big Be".

2. Включил все дополнительные секции кода, которые WHR поместил в тему.
Я оставил их на месте, но закомментировал те секции, которые были заменены.
Ошибки при добавлении этих секций возможны, хотя я был максимально внимателен.
Отсутствие полной интеграции с остальной частью советника также возможно.

3. Также я прогнал его через программу, которая очищает текстовый формат для удобочитаемости.

Советник начнет работать в тестере стратегий.
Он не будет заключать сделки, так как настройка правил входа остается на ваше усмотрение.
Я не занимался этим дальше, так как у меня есть другие требования к моему времени.

ТРЕБУЕТСЯ РАБОТА:
Несмотря на наличие комментариев, многие из них нуждаются в уточнении. Или написать, если их нет. Что делает каждый раздел или функция?
Пример: CallAgain() говорит "Пропустить бесполезные тики". Каков метод или логика? Вероятно, он берет только те тики, которые находятся достаточно далеко и/или в направлении торговли, если речь идет о трейлинг-стопе, но это нужно изучить, чтобы проверить.

Это позволит ему лучше выполнять свою роль источника идей, а также обеспечит работоспособность в качестве оболочки/шаблона советника.

ДАЛЬНЕЙШЕЕ ТЕСТИРОВАНИЕ:
Добавьте несколько правил входа и проверьте, что каждая секция делает то, что должна. Это потребует большого количества исследований в Тестере стратегий. И, возможно, немного кодирования здесь и там, чтобы заставить его делать то, что он должен. Когда все заработает, тогда придется много тестировать на демо-счете.

ПРЕДУПРЕЖДЕНИЯ:
По крайней мере одна функция неполная, и в этом коде могут быть ошибки или изменения в Metatrader с момента написания советника, которые недопустимы.

Кодировать/использовать советника, не понимая его, все равно что пытаться управлять самолетом, не понимая всех органов управления и как их использовать.
Но делайте, что хотите: это ваши деньги.

ЗАПРОС
Пожалуйста, помогите, если у вас есть необходимые знания и немного времени.


Big Be (BigBe)

Файлы:
whrea_v1.2.mq4  188 kb
 
William Roeder:

Не могли бы вы объяснить, что такое pips2dbl?

 
Pooya Khamooshi: Пожалуйста, объясните, что такое pips2dbl?

Чтобы перевести PIP в тик.

PIP - это не пункт и не тик.
Что такое TICK? -Форум по программированию на MQL4

Использование пунктов означает разрыв кода на четырехзначных брокерах, экзотике (например, USDZAR, где спред превышает 500 пунктов) и металлах. Вычислите, что такое PIP, и используйте его, а не пункты.
Как управлять парами JPY с параметрами? -Форум по программированию на MQL4
Проскальзывание, определенное в индексных пунктах - Валютные пары - Эксперты и автоматическая торговля - Форум по программированию MQL5

Причина обращения: