Wie ich meinen Berater durch Versuch und Irrtum zusammenstelle - Seite 50

 
Alexsandr San:

Diese Funktion wurde dem Dienstprogramm ("Utility Command") hinzugefügt #property version "1.004"

am unteren Rand, Einstellungen für diese Funktion

Name der Trendlinie oder der horizontalen Linie - zur Installation des Indikators

Indikatorname - welcher Indikator auf dem Diagramm installiert werden soll

Name der horizontalen Linie oder Trendlinie des Indikators

-------------------------- das Prinzip der Arbeit, sollte wie folgt sein

----------------------- Der Indikator wird die horizontale Linie (blau) verschieben - wenn sie durchbricht, wird er sich in SELL öffnen und den Indikator entfernen und eine gelbe Linie setzen, die von einem anderen Indikator aufgenommen wird und die Linie auf das lila Niveau des Indikators verschiebt - nach der, horizontalen gelb, wird wieder den Indikator setzen


Die Funktion funktioniert perfekt - die Utility ist sehr, sehr gut gelungen.

Es ist jedoch notwendig, diese Funktion um eine weitere Einstellung zu ergänzen, die den Indikator über die Anzahl der Punkte von der offenen Position aus einstellt

Foto von

 
Alexsandr San:

Diese Funktion wurde dem Dienstprogramm ("Utility Command") hinzugefügt #property version "1.004"

am unteren Rand, Einstellungen für diese Funktion

Name der Trendlinie oder der horizontalen Linie - zur Installation des Indikators

Indikatorname - welcher Indikator auf dem Diagramm installiert werden soll

Name der horizontalen Linie oder Trendlinie des Indikators

-------------------------- das Prinzip der Arbeit, sollte wie folgt sein

----------------------- Der Indikator verschiebt die horizontale Linie (blau) - wenn diese durchbrochen wird, öffnet er sich in SELL und entfernt den Indikator und setzt die gelbe Linie, die von einem anderen Indikator aufgegriffen wird und die Linie auf das violette Niveau des Indikators verschiebt - nach, die horizontale gelbe Linie, setzt wieder den Indikator


kleinere Korrekturen im Code, in//| Funktion zum Prüfen und Hinzufügen von Indikatoren zum Diagramm |

#Eigenschaft Version "1.005"

//+------------------------------------------------------------------+
//| Функция проверки и добавления индикатора на график               |
//+------------------------------------------------------------------+
bool AddIndicator()
  {
//--- выводимое сообщение
   string message;
//--- проверим на совпадение символ индикатора и символ графика
   if(_Symbol!=_Symbol)
     {
      message="Демонстрация использования функции Demo_ChartIndicatorAdd():";
      message=message+"\r\n";
      message=message+"Нельзя на график добавить индикатор, рассчитанный на другом символе.";
      message=message+"\r\n";
      message=message+"Укажите в свойствах эксперта символ графика - "+_Symbol+".";
      Alert(message);
      //--- досрочный выход, не будем добавлять индикатор на график
      return false;
     }
//--- проверим на совпадение таймфрейм индикатора и таймфрейм графика
   if(_Period!=_Period)
     {
      message="Нельзя на график добавить индикатор, рассчитанный на другом таймфрейме.";
      message=message+"\r\n";
      message=message+"Укажите в свойствах эксперта таймфрейм графика - "+EnumToString(_Period)+".";
      Alert(message);
      //--- досрочный выход, не будем добавлять индикатор на график
      return false;
     }
//--- все проверки прошли, символ и период индикатора соответствуют графику
   if(indicator_handle==INVALID_HANDLE)
     {
      Print(__FUNCTION__,"  Создаем индикатор");
      indicator_handle=iCustom(_Symbol,_Period,Inpshort_name);
      if(indicator_handle==INVALID_HANDLE)
        {
         Print("Не удалось создать индикатор. Код ошибки ",GetLastError());
        }
     }
//--- сбросим код ошибки
   ResetLastError();
//--- накладываем индикатор на график
   Print(__FUNCTION__,"  Добавляем индикатор на график");
   Print("Индикатор построен на ",_Symbol,"/",EnumToString(_Period));
//--- получим номер нового подокна, в которое добавим индикатор
   int subwindow=(int)ChartGetInteger(0,-1);
   PrintFormat("Добавляем индикатор на окно %d графика",subwindow);
   if(!ChartIndicatorAdd(0,subwindow,indicator_handle))
     {
      PrintFormat("Не удалось добавить индикатор на окно %d графика. Код ошибки  %d",
                  subwindow,GetLastError());
     }
//--- добавление индикатора на график прошло успешно
   return(true);
  }
//+------------------------------------------------------------------+
Dateien:
 
Alexsandr San:

kleinere Korrekturen im Code, in//| Funktion zum Prüfen und Hinzufügen von Indikatoren zum Diagramm |

#Eigenschaft Version "1.005"

den Code leicht angepasst

#Eigenschaft Version "1.006"

input string   t1="----- Trailing Line: 2   -----";              //
input string   InpObjUpNameG                = "POT";             // Obj: TOP (Horizontal Line)
input int      InpStep3                     = 0;                 // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommandG   = close_open_b;      // Obj:  command:
input string   InpObjDownNameG              = "REWOL";           // Obj: LOWER (Horizontal Line)
input int      InpStep4                     = 0;                 // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommandG    = close_open_s;      // Obj:  command:
input ushort   InpObjTrailingStopG          = 0;                 // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepG          = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
input string   t9="------ ChartIndicatorAdd -----";              //
input bool     InpChartInd                  = false;             // Avto Line Chart Indicators
input string   InpIndiL                     = "AVERAGE 0";       // Line name (ChartIndicatorAdd)
input int      InpStep5                     = 15;                // Obj: Шаг сетки, пунктов("0" -> false)
input string   InpIndi_name                 = "Indicator";       // INDICATOR_SHORTNAME

von"AVERAGE 0"; setzt horizontale Linie "POT"; und "REWOL"; im angegebenen Abstand =0;// Obj: Schritt des Rasters, pips("0" -> false)

if set =true( = false; // Avto Linienchart-Indikatoren ) wird im angegebenen Abstand von der Linie "AVERAGE 0" wiederholt;

Dateien:
 

Den ganzen Tag und die ganze Nacht - aber ich habe bekommen, was ich wollte - Danke! Vielen Dank!!! VladimirKarputov

Ein Signal nach dem anderen !!! Hier ist eine Funktion

input string   t="-----  Parameters         -----";              //
input datetime InpMonday_1                  = D'1980.07.19 10:00:00'; // Monday time 1 (use only HH::MM) (00::00 -> off)
//+------------------------------------------------------------------+
long     m_monday_1= 0;

int OnInit()
  {
//---
   MqlDateTime STime;
//--- Monday
   TimeToStruct(InpMonday_1,STime);
   m_monday_1=STime.hour*60*60+STime.min*60;
//---
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
      TimeSession();

  }


//+------------------------------------------------------------------+
//| Search trading signals                                                                 |
//+------------------------------------------------------------------+
bool TimeSession()
  {
   bool res=false;
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   long time_current=STimeCurrent.hour*60*60+STimeCurrent.min*60+STimeCurrent.sec;
   if(m_monday_1==0)
      return(true);
//--- Monday time 1
   if(m_monday_1!=0 && (time_current>=m_monday_1 && time_current<m_monday_1+60))
     {
      datetime last_setup=0;
      MqlDateTime SLastSetup;
      TimeToStruct(last_setup,SLastSetup);
      long time_last_setup=SLastSetup.hour*60*60+SLastSetup.min*60+SLastSetup.sec;
      if(SLastSetup.day_of_week==1 && (time_last_setup>=m_monday_1 && time_last_setup<m_monday_1+60))
         return(true);
      if(1>0)
        {
         Sleep(59*1000);
         PlaySound("tick.wav");
        }
      res=true;
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+
Vladimir Karputov
Vladimir Karputov
  • www.mql5.com
Люди. Граждане! Огромная просьба - заполняйте свой профиль на сайте и пользуйтесь стандартными программами - устанавливайте Skype. У Skype есть очень полезная функция - показ рабочего стола. В таком случае можно оперативно подсказать по возникшей проблеме. Помните - время - деньги! Древняя народная мудрость гласит: если хочешь помочь...
 
Alexsandr San:

den Code ein wenig optimiert

#Eigenschaft Version "1.006"

von"AVERAGE 0"; legt die horizontalen Linien "POT"; und "REWOL"; in einem bestimmten Abstand = 0 frei;// Obj: Grid Step, pips("0" -> false)

if set =true( = false; // Avto Linienchart-Indikatoren ) wird im eingestellten Abstand zur Linie "AVERAGE 0" wiederholt;

#Eigenschaft Version "1.007"
Hinzugefügt - von Zeit, setzen Indikator, horizontale Linien, die in welchem Abstand, aus dem Preis eingestellt sind.

sowie für Time alle Positionen schließen und den Expert Advisor löschen und die Charts ändern oder einfach, ohne offene Positionen zu löschen, den Expert Advisor löschen und die Chartvorlage ändern.

Hier sind seine Einstellungen

//+------------------------------------------------------------------+
input string   t="-----  Parameters         -----";              //
input string   Template                     = "ADX";             // Имя шаблона(without '.tpl')
input bool     Inpwithout                   = false;             // Сменить только шаблон (true)
input datetime InpMonday_2                  = D'1970.01.01';     // Dell (00::00 -> off)
input double   TargetProfit                 = 999999.99;         // Цель Баланса(Ваш Баланс + сумма)
input uint     maxLimits                    = 1;                 // Кол-во Позиции Открыть в одну сторону
input double   InpLots                      = 0.01;              // Lots
input int      InpTakeProfit                = 90;                // Take Profit ("0"-No. 5<100)
input string   t0="----- Trailing Line: 1   -----";              //
input string   InpObjUpName                 = "ZTOP";            // Obj: TOP (Horizontal Line)
input int      InpStep1                     = 25;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommand    = open_sell;         // Obj:  command:
input string   InpObjDownName               = "ZLOWER";          // Obj: LOWER (Horizontal Line)
input int      InpStep2                     = 25;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommand     = open_buy;          // Obj:  command:
input ushort   InpObjTrailingStop           = 0;                 // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStep           = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
input string   t2="----- Indicators: SELL   -----";              //
input string   short_name                   = "LeMan_BrainTrend1Sig";   // Name Indicators "SELL"
input bool     InpIndicators                = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY   = open_sell;         // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU   = close_sells;       // Trade command: (SellBuffer Indicators)
input string   t3="----- Indicators: BUY    -----";              //
input string   short_name1                  = "LeMan_BrainTrend1Sig";   // Name Indicators "BUY"
input bool     InpIndicators1               = false;             // Indicators: Start (true)
input ENUM_TRADE_COMMAND InpTradeCommandY1  = close_buys;        // Trade command: (BuyBuffer Indicators)
input ENUM_TRADE_COMMAND InpTradeCommandU1  = open_buy;          // Trade command: (SellBuffer Indicators)
input string   t4="----- Button:            -----";              //
input ENUM_TRADE_COMMAND InpTradeCommandBut = open_buy;          // Obj(BUY):  command:Button: BUY
input ENUM_TRADE_COMMAND InTradeCommandBut  = open_sell;         // Obj(SELL):  command:Button: SELL
input int      TrailingStop_STOP_LEVEL      = 36;                // Button: Trailing Stop LEVEL
input string   t5="----- Line name: 1       -----";              //
input string   InpNameR                     = "LineR";           // Line name (Horizontal Line or Trend Line)
input ENUM_TRADE_COMMAND InpTradeCommandR   = open_buy;          // Trade command:
input string   t6="----- Line name: 2       -----";              //
input string   InpNameS                     = "LineS";           // Line name (Horizontal Line or Trend Line)
input ENUM_TRADE_COMMAND InpTradeCommandS   = open_sell;         // Trade command:
input string   t7="----- Revers Buy><Sell   -----";              //
input bool     ObjRevers                    = false;             //  Revers
input string   t8="------ Indicator Delete  -----";              //
input string   Inpshort_name_1              = "Indicator 2";     // INDICATOR_SHORTNAME 2
input bool     Inpres                       = false;             // Delete All Indicators
input string   t1="----- Trailing Line: 2   -----";              //
input string   InpObjUpNameG                = "POT";             // Obj: TOP (Horizontal Line)
input int      InpStep3                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InpTradeCommandG   = close_open_b;      // Obj:  command:
input string   InpObjDownNameG              = "REWOL";           // Obj: LOWER (Horizontal Line)
input int      InpStep4                     = 20;                // Obj: Шаг сетки, пунктов("0" -> false)
input ENUM_TRADE_COMMAND InTradeCommandG    = close_open_s;      // Obj:  command:
input ushort   InpObjTrailingStopG          = 0;                 // Obj: Trailing Stop (distance from price to object, in pips)
input ushort   InpObjTrailingStepG          = 5;                 // Obj: Trailing Step, in pips (1.00045-1.00055=1 pips)
input string   t9="------ ChartIndicatorAdd -----";              //
input bool     InpChartInd                  = false;             // Avto Line Chart Indicators
input string   InpIndiL                     = "AVERAGE 0";       // Line name (ChartIndicatorAdd)
input int      InpStep5                     = 15;                // Obj: Шаг сетки, пунктов("0" -> false)
input string   InpIndi_name                 = "Indicator";       // INDICATOR_SHORTNAME
input datetime InpMonday_1                  = D'1970.01.01';     // Indicators(use only HH::MM)(00::00->off)
//+------------------------------------------------------------------+
Dateien:
 

Der Indikator gibt einen Alarm aus - von der horizontalen blauen Linie ziehen wir eine nach oben, eine weitere nach unten und wenn die blaue Linie sich kreuzt, löst er einen Alarm aus und löscht die Linie

- Ich werde diese Funktion inUtility_Command.mq5225 kb hinzufügen

Foto von

Dateien:
macd_Line.mq5  21 kb
 

Es ist nicht einfach, horizontale Linien im Indikatorfenster zu erzeugen.

aber ich habe mir etwas einfallen lassen. Hier ein grober Entwurf: Von der macd-Null-Linie (SELL untere Linie brechen BUY obere Linie)

Foto von

Schnappschuss2

-------------------------

Experten- und Indikatorenentwurf

Dateien:
 
Alexsandr San:

Es ist nicht einfach, die horizontalen Linien im Indikatorfenster zum Laufen zu bringen.

aber ich habe mir etwas einfallen lassen. Hier ein grober Entwurf: Von der macd-Nulllinie (SELL untere Linie brechen BUY obere Linie)

-------------------------

einen Entwurf für einen Experten und einen Indikator

Tatsächlich arbeitet der Expert Advisor im Indikatorfenster - wenn LOW eine horizontale Linie zwischen den Linien BUY und SELL ist, wird keine Position eröffnet, aber wenn sie höher als BUY ist, wird eine BUY-Position eröffnet.

Umgekehrt wird unterhalb derSELL-Linie eine Verkaufsposition eröffnet.

AUDCADM1

 
Alexsandr San:

Der Indikator gibt einen Alarm aus - von der horizontalen blauen Linie ziehen wir eine nach oben, eine weitere nach unten und wenn die blaue Linie sich kreuzt, löst er einen Alarm aus und löscht die Linie

- Ich werde diese Funktion inUtility_Command.mq5225 kb hinzufügen

Ich habe diese Funktion hinzugefügt - sie ist sehr einfach, aber ich habe nur herausgefunden, wie man sie implementiert

#Eigenschaft Version "1.008"

AUDCADM1V 1

AUDCADM1B 2

Foto von 3


Ich füge einen Indikator für diese Funktion bei

Dateien:
 

Ja! Sie sollten auch dies zum Dienstprogramm hinzufügenhttps://www.mql5.com/ru/code/23939


OBJ_HLINE follows price
OBJ_HLINE follows price
  • www.mql5.com
GannZIGZAG_Fibo_Grand_xN_Din Зигзаг Ганна с графическим объектом "Уровни Фибоначчи", построенными на двух, последних вершинах с расширенными настройками для отображения фибо-уровней. XKPrmSt_NRTR_HTF
Grund der Beschwerde: