Мультивалютный советник "MTG" (доработка)

  • Автор темы forexFX
  • Дата начала
Ловкость рук и никакого мошенства :cool:
Посмотреть вложение 5437
C#:
[SIZE=2]//+------------------------------------------------------------------+
//| Информационная панель                                            |
//+------------------------------------------------------------------+

void ShowInfo()
{ 
   double profit = NormalizeDouble(AccountInfoDouble(ACCOUNT_PROFIT) * 100 / AccountInfoDouble(ACCOUNT_BALANCE), 2);
 
   if (AccountInfoDouble(ACCOUNT_PROFIT) < maxProfit)
   {
      maxProfit = AccountInfoDouble(ACCOUNT_PROFIT);
      maxProfitPercent = profit;
   }
 
   string message = "--------------------------------------------------------------------------\n";
   message += "Баланс счета: " + AccountInfoDouble(ACCOUNT_BALANCE) + "\n";
   message += "Средства: " + AccountInfoDouble(ACCOUNT_EQUITY) + "\n";
   message += "Текущая прибыль/просадка: " + AccountInfoDouble(ACCOUNT_PROFIT) + "  (" + profit + "%)\n";
   message += "Максимальная просадка: " + maxProfit + "  (" + maxProfitPercent + "%)\n";
   message += "--------------------------------------------------------------------------\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
   message += Symb1 + "  ордеров: " + (PositionCount(0, Symb1) + PositionCount(1, Symb1)) + "  лоты: " + GetLots(Symb1) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb1),1) + "\n";
   message += Symb2 + "  ордеров: " + (PositionCount(0, Symb2) + PositionCount(1, Symb2)) + "  лоты: " + GetLots(Symb2) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb2),1) + "\n";
   message += Symb3 + "  ордеров: " + (PositionCount(0, Symb3) + PositionCount(1, Symb3)) + "  лоты: " + GetLots(Symb3) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb3),1) + "\n";
   message += Symb4 + "  ордеров: " + (PositionCount(0, Symb4) + PositionCount(1, Symb4)) + "  лоты: " + GetLots(Symb4) + "  профит/убыток: " + NormalizeDouble(AllProfit(Symb4),1) + "\n";
 
   Comment(message);
}[/SIZE]
Настоящий шаман!
А то что выдаёт предупреждение ничего страшного?
implicit conversion from 'number' to 'string'
 
Настоящий шаман!
А то что выдаёт предупреждение ничего страшного?
implicit conversion from 'number' to 'string'
Предупреждение убрал, параметр разрешения торговли в два направления одновременно добавил.
 

Вложения

  • Test_mult_v1_04.mq5
    25.5 КБ · Просмотры: 17
Провёл тестирование, выделил 20 пар, которые выглядели достойно среди всех.
Чисто гипотетически не менее 20% в месяц должно получиться. Сегодня вечером установил на торговлю, конечно на демо счёт. Баланс 50 000. Буду здесь писать отчёт по торговле.
 
  • Лайк
Реакции: Samir и SilverKZ
01
Торговля в процессе. Для наглядности дохода, можно прикрутить к советнику данные по дням торговли. Пример в файле на 5 дней. Разместить его в правый верхний угол.
!!!А как информацию по ордерам, та что слева, посадить на полупрозрачный фон?!!!
Спасибо.
 

Вложения

  • Profit for the last week.mq5
    20.7 КБ · Просмотры: 12
02
Продолжаю тестировать советника. На конец недели вот такая картина. Это при том, что пол дня не был включён алготрейдинг в терминале. Но этот неприятный факт не помешал выйти за день в профит.
 
Неделя закончилась. Результат на графике. Сегодня были движения на рынке, и соответственно немного есть профит. Но если присмотреться, то и просадка увеличилась. На выходных пересмотрю пары, для снижения просадки.
03
 
!!!А как информацию по ордерам, та что слева, посадить на полупрозрачный фон?!!!
Спасибо.
Добавил информационную панель по позициям. Окно перетаскивается мышкой и сворачивается. Строки с прибылью подсвечиваются зелёным, убыточные - красным.
Screenshot 211Проверку по Magic закомментировал, думаю подхватит ранее открытые позиции, настройку по символам только сделать надо.
 

Вложения

  • Test_mult_v2_01.mq5
    33.3 КБ · Просмотры: 15
  • Лайк
Реакции: Виктор73
Добавил информационную панель по позициям. Окно перетаскивается мышкой и сворачивается. Строки с прибылью подсвечиваются зелёным, убыточные - красным.
Посмотреть вложение 5457Проверку по Magic закомментировал, думаю подхватит ранее открытые позиции, настройку по символам только сделать надо.
Рад, что не оставили проект! Панелька супер. Немного подправил под свои глаза.
Для более эффекта от панели, отлично было сделать так. Пары, которые не в рынке, на панели не отображаются. Только те, которые вошли в рынок, показывают свою торговлю. И при этом сама форма набирает размеров по количество пар, которые в торговли. Будет динамически смотреться, так как при закрытии пары или вход в рынок панель будет реагировать, а это очень классно.
Так же, по возможности, сделайте с другой стороны статистическую историю профита по днях (достаточно последние 10 дней). Так визуально будет понятно куда идём в верх или ...
!!! Предоставляю Вам отредактированную версию кода с подбором пар. Дальнейшие правки делаем уже с этой версией.
 

Вложения

  • Multi Gold Forex v2.01.mq5
    42.5 КБ · Просмотры: 14
Кстати, усреднение на продажу перестало работать после последних правок. Может что-то после закомментированние МАГИКА!
 
Рад за Вас!!! процесс идет. в мт5 полный ноль. а так бы помог
 
Протестировал советник на большей истории, и не вытягивает сама пара просадку даже с дополнительным фильтром. Будем менять стратегию. Паре нужно помогать. По началу нужно объединить все пары одним TakeProfit, множитель лота, шаг (как было ранее). Двусторонней торговли так же не будет. Нужно убрать эту опцию совсем (как было ранее).
Я выделил несколько пар для дальнейшей работы. Предоставляю файл, с которым будем продолжать правки. Новую стратегию опишу после правок.
Спасибо.
 

Вложения

  • Multi Gold Forex v2.01.mq5
    35.7 КБ · Просмотры: 21
Пропал мой программист! Жаль, что не смогу продолжить проект!
 
Устанавливается на одну валютную пару. Обязательно у каждой корзины свой magic. В комментариях открытых позиций в торговом терминале можно видеть magic корзины. Screenshot 4
 
Всем привет! Кто то тестирует еще советник?
 
Не знаю почему, но он у меня не тестирует и вообще не включается
 
Этот советник только на мт5 работает?
 

Проверенные Брокеры

Реклама

Заработок онлайн

Назад
Верх