vadimltd
Вадим

 
Уровень 8

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Експерт для мультисистемы

Всем привет. Попался на глаза индикатор для опционов. Если возможно набросить советника, буду очень благодарен.


Индикатор сигнализирует для пары цену входа и направление (скриншот).
После достижение цены по паре, советник входит в рынок по направлению стрелки. Выходит с рынка, когда сигнал по паре исчезает (появляется жёлтый крестик).
Так как индикатор мультивалютный, в советнике неплохо было бы вручную вводить нужную пару для торговли (желательно несколько). Так можно сбалансировать профит и лоси по нескольким парам.

Вот такая задачка.

Binary_Alert dashboard.ex4 (22 Kb)
  • +1
  • Просмотров: 1280
  • 19 декабря 2022, 11:20
  • vadimltd
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Сделать аналог советника в МТ5
Следующая запись в группе  
Доработка советника.
17 декабря 2022
20 декабря 2022

Брокер для ваших роботов, 15 лет на рынке

Комментарии (17)

+
0
в индикаторе объекты, нет буферов. если заморочиться то можно сделать. платный может и возьмется
avatar

  35  AM2 Сообщений: 16256 - Андрей

  • 19 декабря 2022, 20:20
+
0
Я так понял, что бесплатный — НЕТ?
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 20 декабря 2022, 11:45
+
0
Надо проверить результативность индюка.
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 20 декабря 2022, 16:51
+
0
наблюдал в онлайн-торговле за сигналами — в плюсе то что увидел. Для проверки результативности и нужен набросок советника. Самостоятельно не будешь всё время таращиться в монитор.
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 20 декабря 2022, 18:14
+
0
так это не исходник
avatar

  23  igrun Сообщений: 1640 - igrun

  • 20 декабря 2022, 18:34
+
0
согласен, с исходником можно было и буфера вывести. А так только с объектами!
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 20 декабря 2022, 19:09
+
0
а как насчет трояна?
avatar

  23  igrun Сообщений: 1640 - igrun

  • 20 декабря 2022, 19:11
+
0
где троян?
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 20 декабря 2022, 19:12
+
0
ну можно зашить все что угодно
avatar

  23  igrun Сообщений: 1640 - igrun

  • 20 декабря 2022, 19:14
+
0
Пропишите хоть одну пару по входу и закрытию. Всё остальное можно по аналогии и самому сделать!
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 20 декабря 2022, 19:13
+
0
Вот исходник похожего
#property copyright "Copyright 2013"
#property link      ""
#property strict
#property indicator_chart_window


string Gsa_80[24] = {"EURUSD","GBPUSD","USDJPY","USDCHF","NZDUSD","USDCAD","AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY","CADCHF","CADJPY","CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY","EURNZD","EURCAD","GBPJPY","GBPCHF","NZDJPY","GOLD"};
int FontSize = 12;
int Gia_84[24] = {251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251};
bool Gba_88[24] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
string Gsa_92[24] = {"", "", "", "", "", "", "", "", "", "", "", "","", "", "", "", "", "", "", "", "", "", "", ""};
string Gsa_96[24] = {"", "", "", "", "", "", "", "", "", "", "", "","", "", "", "", "", "", "", "", "", "", "", ""};
datetime G_time_100 = 1;
double Gd_unused_104;
int G_count_112 = 0;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   double iclose_0;
   int Lia_unused_8[];
   if (Point == 0.00001) Gd_unused_104 = 0.0001;
   else {
      if (Point == 0.001) Gd_unused_104 = 0.01;
      else Gd_unused_104 = Point;
   }
   G_time_100 = Time[0];
   for (int index_12 = 0; index_12 <= ArraySize(Gsa_80) - 1; index_12++) for (int Li_16 = 0; Li_16 <= 3; Li_16++) iclose_0 = iClose(Gsa_80[index_12], 0, Li_16);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   f0_4();
   return (0);
}

// C221A17B360C36A473B962FBBDF51DA3
void f0_4() {
   for (int Li_0 = ObjectsTotal() - 1; Li_0 >= 0; Li_0--)
      if (StringSubstr(ObjectName(Li_0), 0, StringLen("Ben Binary Indicator")) == "Ben Binary Indicator") ObjectDelete(ObjectName(Li_0));
}

// ED527DFD7147F55A900CF91EA8B9A467
void f0_6(color A_color_0) {
   string name_12;
   int fontsize_4 = 120;
   int Li_8 = 130;
   for (int count_20 = 0; count_20 < 4; count_20++) {
      for (int count_24 = 0; count_24 < 4; count_24++) {
         name_12 = "Ben Binary Indicator" + "-bgblock-" + ((count_20 + 1)) + "-" + ((count_24 + 1));
         if (ObjectFind(name_12) == -1) ObjectCreate(name_12, OBJ_LABEL, 0, 0, 0);
         ObjectSetText(name_12, "g", fontsize_4, "Webdings", A_color_0);
         ObjectSet(name_12, OBJPROP_XDISTANCE, Li_8 * count_20 + 4);
         ObjectSet(name_12, OBJPROP_YDISTANCE, Li_8 * count_24 + 20);
         ObjectSet(name_12, OBJPROP_COLOR, A_color_0);
         ObjectSet(name_12, OBJPROP_FONTSIZE, fontsize_4);
      }
   }
}

// C78C6CE47D21092278DDCB1713B15763
void f0_5(int Ai_0, color A_color_4, int Ai_8) {
   string name_12 = "Ben Binary Indicator" + "-parrow-" + Ai_0;
   if (ObjectFind(name_12) == -1) ObjectCreate(name_12, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(name_12, CharToStr(Ai_8), FontSize, "Wingdings", A_color_4);
   ObjectSet(name_12, OBJPROP_XDISTANCE, 230);
   ObjectSet(name_12, OBJPROP_YDISTANCE, Ai_0 * FontSize * 2 + 60);
   ObjectSet(name_12, OBJPROP_COLOR, A_color_4);
   ObjectSet(name_12, OBJPROP_FONTSIZE, FontSize);
   ObjectSet(name_12, OBJPROP_BACK, FALSE);
}

// 2E19B008659812AC2C3D6D6F879D9E70
void f0_1(int Ai_0, string As_4, int A_x_12, color A_color_16, string A_text_20) {
   string name_28 = "Ben Binary Indicator" + "-" + As_4 + "-" + Ai_0;
   if (ObjectFind(name_28) == -1) ObjectCreate(name_28, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(name_28, A_text_20, FontSize, "Tahoma", A_color_16);
   ObjectSet(name_28, OBJPROP_XDISTANCE, A_x_12);
   ObjectSet(name_28, OBJPROP_YDISTANCE, Ai_0 * FontSize * 2 + 60);
   ObjectSet(name_28, OBJPROP_COLOR, A_color_16);
   ObjectSet(name_28, OBJPROP_FONTSIZE, FontSize);
   ObjectSet(name_28, OBJPROP_BACK, FALSE);
}

// 3615EE2C04E2B67B734E47180D26EF4D
void f0_2() {
   color color_0 = Silver;
   int x_4 = 20;
   int y_8 = 30;
   string name_12 = "Ben Binary Indicator" + "-scanning";
   if (ObjectFind(name_12) == -1) ObjectCreate(name_12, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(name_12, "Торговля", FontSize, "Arial", color_0);
   ObjectSet(name_12, OBJPROP_XDISTANCE, x_4);
   ObjectSet(name_12, OBJPROP_YDISTANCE, y_8);
   ObjectSet(name_12, OBJPROP_COLOR, color_0);
   ObjectSet(name_12, OBJPROP_FONTSIZE, FontSize);
   ObjectSet(name_12, OBJPROP_BACK, FALSE);
   for (int count_20 = 0; count_20 < 4; count_20++) {
      name_12 = "Ben Binary Indicator" + "-scan-" + count_20;
      if (count_20 <= G_count_112) {
         if (ObjectFind(name_12) == -1) ObjectCreate(name_12, OBJ_LABEL, 0, 0, 0);
         ObjectSetText(name_12, CharToStr(52), 10, "Webdings", color_0);
         ObjectSet(name_12, OBJPROP_XDISTANCE, x_4 + 180 + 10 * count_20);
         ObjectSet(name_12, OBJPROP_YDISTANCE, y_8 + 4);
         ObjectSet(name_12, OBJPROP_COLOR, color_0);
         ObjectSet(name_12, OBJPROP_FONTSIZE, 10);
         ObjectSet(name_12, OBJPROP_BACK, FALSE);
      } else
         if (ObjectFind(name_12) > -1) ObjectDelete(name_12);
   }
   G_count_112++;
   if (G_count_112 > 4) G_count_112 = 0;
}

// 0BEB11C60932324283D99AE1621CE4EA
int f0_0(string A_symbol_0, int Ai_8) {
   return (iClose(A_symbol_0, 0, Ai_8) > iOpen(A_symbol_0, 0, Ai_8));
}

// 9D2B54D8854E5058E9165CC517FF5612
int f0_3(string A_symbol_0, int Ai_8) {
   return (iOpen(A_symbol_0, 0, Ai_8) > iClose(A_symbol_0, 0, Ai_8));
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int Li_4;
   int Li_8;
   int index_0;
   string Ls_12;
   bool Li_20;
   f0_6(Black);
   f0_2();
   for (index_0 = 0; index_0 <= ArraySize(Gsa_80) - 1; index_0++) {
      if (f0_3(Gsa_80[index_0], 1) && f0_3(Gsa_80[index_0], 2) && f0_3(Gsa_80[index_0], 3)) {
         Li_4 = 233;
         Gba_88[index_0] = Gia_84[index_0] != Li_4;
         Gsa_92[index_0] = "BUY";
         Gsa_96[index_0] = DoubleToStr(iOpen(Gsa_80[index_0], 0, 0), MarketInfo(Gsa_80[index_0], MODE_DIGITS));
         Gia_84[index_0] = Li_4;
         Li_8 = 65280;
      } else {
         if (f0_0(Gsa_80[index_0], 1) && f0_0(Gsa_80[index_0], 2) && f0_0(Gsa_80[index_0], 3)) {
            Li_4 = 234;
            Gba_88[index_0] = Gia_84[index_0] != Li_4;
            Gsa_92[index_0] = "SELL";
            Gsa_96[index_0] = DoubleToStr(iOpen(Gsa_80[index_0], 0, 0), MarketInfo(Gsa_80[index_0], MODE_DIGITS));
            Gia_84[index_0] = Li_4;
            Li_8 = 17919;
         } else {
            Li_4 = 251;
            Gba_88[index_0] = 0;
            Gsa_92[index_0] = "";
            Gsa_96[index_0] = "-";
            Gia_84[index_0] = Li_4;
            Li_8 = 65535;
         }
      }
      f0_1(index_0, "pair", 30, Li_8, Gsa_80[index_0]);
      f0_5(index_0, Li_8, Gia_84[index_0]);
      f0_1(index_0, "price", 300, Li_8, Gsa_96[index_0]);
   }
   if (G_time_100 != Time[0]) {
      G_time_100 = Time[0];
      Ls_12 = "";
      Li_20 = FALSE;
      for (index_0 = 0; index_0 <= ArraySize(Gba_88) - 1; index_0++) {
         if (Gba_88[index_0] && Gsa_92[index_0] != "" && Gsa_96[index_0] != "") {
            Ls_12 = Gsa_92[index_0] + " on " + Gsa_80[index_0] + " @ " + Gsa_96[index_0] + "  " + TimeToStr(TimeLocal(),TIME_SECONDS); 
            if (Ls_12 != "") {
               Alert(Ls_12);
               Li_20 = TRUE;
            }
         }
      }
      if (Li_20) PlaySound("alert.wav");
   }
   return (0);
}
avatar

  14  OSS5 Сообщений: 148

  • 20 декабря 2022, 20:49
+
0
Вот и есть открытый код. Есть желающие программисты попробывать накидать советник?
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 21 декабря 2022, 09:50
+
0
Открытый код вам ни чем не поможет: на этом сайте пишут мультивалютники на 6 символов, а в индикаторе их аж 24.

Так-что Т.З. изначально провальное.Ну или меняйте Т.З. под 6 символов.
avatar

  20  alex30774 Сообщений: 748

  • 21 декабря 2022, 15:47
+
0
так зачем все символы. Для тестирования можно взять один. Проверить что к чему. А потом по аналогии можно далее развивать с другими символами!
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 21 декабря 2022, 16:02
+
0
Что-то я внём ни чего граального не нахожу
avatar

  20  alex30774 Сообщений: 748

  • 21 декабря 2022, 18:13
+
0
Индикатор рекомендует закрыть сделку субытком
avatar

  20  alex30774 Сообщений: 748

  • 21 декабря 2022, 20:03
+
0
это как подойти к индикатору. Можно взять любой один символ и сделать на одной сделке заключение. А можно несколько символов протестировать на некоторое время. И тут интрига…
avatar

  8  vadimltd Автор Сообщений: 192 - Вадим

  • 21 декабря 2022, 21:31

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий