Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1706

 
EVGENII SHELIPOV #:

Makar, hier stimmt etwas nicht. Ich liebe es, danke. Ich habe selbst eine nicht ganz so hübsche Lösung gefunden, aber sie funktioniert.

Zeigen Sie mir, wo GetAveragePriceManMaxOrders() aufgerufen wird.
 

MakarFX #:
Покажи где идет обращение к GetAveragePriceManMaxOrders()

 ObjectCreate(0,"AveragePriceLineMinMaxOrders0",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(0));
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_COLOR, clrLime);
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_STYLE, STYLE_DASH);
   ObjectCreate(0,"AveragePriceLineMinMaxOrders1",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(1));
   ObjectSet("AveragePriceLineMinMaxOrders1",OBJPROP_COLOR, clrRed);
   ObjectSet("AveragePriceLineMinMaxOrders1", OBJPROP_STYLE, STYLE_DASH);

Makar Ich habe noch nichts Ernsthaftes mit dieser Funktion zu tun. Ich habe gerade einen Verweis zur Visualisierung von Objekten erstellt. Diese Funktion ist sozusagen für die Zukunft gedacht.

 
EVGENII SHELIPOV #:

Makar Ich habe noch nichts Ernsthaftes mit dieser Funktion zu tun. Ich habe gerade einen Verweis zur Visualisierung von Objekten erstellt. Diese Funktion ist sozusagen für die Zukunft.

Löschen

ObjectCreate(0,"AveragePriceLineMinMaxOrders0",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(0));
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_COLOR, clrLime);
   ObjectSet("AveragePriceLineMinMaxOrders0", OBJPROP_STYLE, STYLE_DASH);
   ObjectCreate(0,"AveragePriceLineMinMaxOrders1",OBJ_HLINE, 0, 0, GetAveragePriceManMaxOrders(1));
   ObjectSet("AveragePriceLineMinMaxOrders1",OBJPROP_COLOR, clrRed);
   ObjectSet("AveragePriceLineMinMaxOrders1", OBJPROP_STYLE, STYLE_DASH);

und alles sollte funktionieren

 

Guten Tag zusammen. Ich habe eine solche Aufgabe in mt4. Zunächst öffne ich zu Beginn des Tages 30 Charts verschiedener Symbole mit mittelfristiger Vorlage, und an alle Charts habe ich Indikator und EA mit seinen Parametern angehängt. Dann analysiere ich die Charts, und bei den Charts mit einem Signal gehe ich von D1 zu n1, und wenn es ein Signal auf n1 gibt, eröffnet der Expert Advisor Positionen und unterstützt sie. Am Ende des Tages stellt sich heraus, dass ein Teil des Diagramms auf d1 und ein anderer Teil auf n1 liegt. Zu Beginn des nächsten Tages brauche ich wieder alle Charts auf d1 mit Indikator und EA, die ihre Parameter gespeichert haben. Ich habe versucht, ein Profil in dem Moment zu speichern, in dem alle Karten auf d1 stehen. Ich lade das Profil, aber die Charts, die auf n1 umgestellt wurden, bleiben weiterhin auf diesem Zeitrahmen. Gibt es eine fertige Lösung, um alle geöffneten Charts im Terminal einfach und schnell auf d1 umzuschalten und dabei alle meine Einstellungen zu speichern? Ein Skript, ein Expert Advisor oder etwas anderes?

Und die zweite Frage - wenn ich 30 geöffnete Charts habe und auf der rechten Seite der unteren Leiste stehe, wo sich alle Charts befinden, kann ich dann mit einem Klick zum richtigen Chart wechseln, anstatt durch ein Chart zu blättern?


die Karte ganz rechts von 30. Der Pfeil nach rechts blättert jeweils um 1 - wie komme ich zur Karte ganz rechts?

 
DanilaMactep #:

Guten Tag zusammen. Ich habe eine solche Aufgabe in mt4. Zunächst öffne ich zu Beginn des Tages 30 Charts verschiedener Symbole mit mittelfristiger Vorlage, und an alle Charts habe ich Indikator und EA mit seinen Parametern angehängt. Dann analysiere ich die Charts, und bei den Charts mit einem Signal gehe ich von D1 zu n1, und wenn es ein Signal auf n1 gibt, eröffnet der Expert Advisor Positionen und unterstützt sie. Am Ende des Tages stellt sich heraus, dass ein Teil des Diagramms auf d1 und ein anderer Teil auf n1 liegt. Zu Beginn des nächsten Tages brauche ich wieder alle Charts auf d1 mit Indikator und EA, die ihre Parameter gespeichert haben. Ich habe versucht, ein Profil zu dem Zeitpunkt zu speichern, zu dem alle Karten auf d1 stehen. Ich lade das Profil, aber die Charts, die auf n1 umgestellt wurden, bleiben weiterhin auf diesem Zeitrahmen. Gibt es eine fertige Lösung, um alle geöffneten Charts im Terminal einfach und schnell auf d1 umzuschalten und dabei alle meine Einstellungen zu speichern? Ein Skript, ein Expert Advisor oder etwas anderes?

Und die zweite Frage - wenn ich 30 offene Charts habe und rechts in der unteren Leiste stehe, wo alle Charts sind, kann ich mit einem Fingertipp zum richtigen Chart wechseln, anstatt durch einen Chart zu blättern.

Hier ist ein Skript, das bei dieser Frage hilft:

/********************************************************************\
|                                                           Test.mq5 |
|                                            © 2021, Alexey Viktorov |
|                       https://www.mql5.com/ru/users/alexeyvik/news |
\********************************************************************/
#property copyright "Viktorov"
#property link      "https://www.mql5.com/ru/users/alexeyvik/news"
#property version   "1.00"
#property strict

/********************Script program start function*******************/
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0)
   {
    if(ChartPeriod(prevChart) != PERIOD_D1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_D1);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

Bei der zweiten Frage ist die Tastenkombination Strg+Tab oder Strg+Umschalt+Tab hilfreich

oder ein Skript mit einer Zeile Code schreiben

ChartSetInteger(ChartFirst(), CHART_BRING_TO_TOP, 0, true)
 
Alexey Viktorov #:

Hier ist ein Skript, das bei dieser Frage hilft:

Bei der zweiten Frage hilft die Tastenkombination ctrl+tab oder ctrl+shift+tab

oder ein Skript mit einer Zeile Code schreiben

Danke für den Code - ich werde ihn in das Skript einbauen, ich hoffe, er funktioniert und explodiert nicht :-) ;-)
 
Alexey Viktorov #:

Hier ist ein Skript, das bei dieser Frage hilft:

Bei der zweiten Frage hilft die Tastenkombination ctrl+tab oder ctrl+shift+tab

oder ein Skript mit einer Zeile Code schreiben

Hat alles perfekt geklappt - vielen Dank - jetzt werde ich viel Zeit und Mühe sparen P/S beim Schrauben nichts platzen lassen und auch für den Transfer zum n1 nachbearbeiten)))))))

 
Guten Tag! Ich möchte erfahrene Benutzer zu fragen, gibt es eine sehr einfache Indikator, der Code ist unten angehängt, ich möchte zu Metatrader5 Terminal wechseln und die aktuelle Indikator in mql4 geschrieben passt nicht, gibt es irgendwelche grundlegenden Prinzipien der Trigger, wie man den Indikator neu zu schreiben, oder vielleicht konvertieren es
//+--где индикатор если indicator_chart_window то на график у нас в отдельном окне
#property indicator_separate_window
//+--уровни это сколько масивов Buf0[],Buf1[],Buf2[]; у нас каждый масив это линия
#property indicator_buffers 3
//+--сколько линий и какого цвета
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Blue 
//+-- ширина линии
#property indicator_width1  2
#property indicator_width2  3
#property indicator_width3  3
//+--уровни
#property indicator_level1 30 //+--уровень 1
#property indicator_level2 50 //+--уровень 2
#property indicator_levelstyle 2 //+--тип линии уровня 2 - это пунктир
#property indicator_levelcolor Black //+-- цвет линии уровня
//+-- то что будет в окне "входные параметры"                                         
extern int RSIPERIOD=5;
extern double KOEFF1=1.4;
extern double KOEFF2=2; 
//+-- описываем какие у нас массивы (их три) и перменные (в даном случае параметры РСАЙ (D10,D11,D12;) это переменная                                                                                                                                                       
double Buf0[],Buf1[],Buf2[];
double D10,D11,D12;
//+-- Блок init ПРЕДПОЛОДЖИТЕЛЬНО описательный                                                                                                                                                                                                                                                                                                                                      
int init()
  {
   IndicatorDigits(0); //+--формат точности (количество знаков после десятичной точки) для визуализации значений индикатора в окне индикатора (цифры rsi 7 или 7,23)
   string short_name="KAVRSI";   //+-- задаем 2 строчками короткое имя        
   IndicatorShortName("KAVRSI"); //+-- задаем 2 строчками короткое имя
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;; //+--тут мы высчитываем переменные которые описали как масивы выше
 
   SetIndexBuffer(0,Buf0); //+-- описываем 1 массив Buf0[] первый это нулевой второй это первый и т.д.
   SetIndexStyle (0,DRAW_LINE); //+-- говорим что этот масив хотим представить в виде линии 0 это порядковый номер линии соответствует номеру масива 
   SetIndexBuffer(1,Buf1); //+-- описываем 2 массив Buf1[]
   SetIndexStyle (1,DRAW_LINE); //+-- 1 это порядковый номер линии соответствует номеру масива Buf1[]
   SetIndexBuffer(2,Buf2);
   SetIndexStyle (2,DRAW_LINE);
   return(0);
  }
//+-- Блок start сама математика и ОТРИСОВКА                                                                                                             
int start()
  {
   if(Bars<=RSIPERIOD)return(0); //+-- начинаем задавать условия если количество баров меньше расчета (баров 9 а мы считаем по 14) то выдаем 0
   int ExtCountedBars=IndicatorCounted(); //+--Возвращает количество баров, не измененных после последнего вызова индикатора.
   //---- последний посчитанный бар будет пересчитан
   if (ExtCountedBars>0) ExtCountedBars--;
   if (ExtCountedBars<0) return(-1);
   //+-- for(int для int это переменна в нашем случае видимо int ExtCountedBars=IndicatorCounted()
   //+-- и тут мы задаем параметр i - его свойства и описание на основе пересчитаных баров 
   //+-- в нашем случае НЕТ НЕ ПЕРЕСЧИТАННЫХ - считаеться и последний! 
   for(int i=0;i<Bars-RSIPERIOD;i++)
      {
       Buf0[i] = iRSI(NULL,0,D10,0,i);//+-- говорим что 1 массив это рсай с параметром D10
//+-- Пишем в коде что бы ВМЕСТО красной и синей линией RSI2 и RSI3 была одна линия - 
//+-- чтобы вместо красной и синей была одна - мы получаем среднее значение этих линий, т.е.     
       Buf1[i] = (iRSI(NULL,0,D11,0,i)+iRSI(NULL,0,D12,0,i))/2; //+-- и у этой линии, по умолчанию, красный цвет  
//+-- когда выполняется условие
       if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i))
//+-- то мы не меняем цвет линии, т.к. в МТ4 это нельзя сделать,
//+-- а берем и накладываем сверху другую линию с другим цветом      
       Buf2[i] = Buf1[i]; 
       else
       Buf2[i] = EMPTY_VALUE; //+-- добавляем else Buf2[i] = EMPTY_VALUE; EMPTY_VALUE - Пустое значение в индикаторном буфере 
      }
   return(0);
  }
 

Hallo!

Ich würde gerne von Programmierern hören, die gegen Bezahlung Ratschläge zu MQL5 geben!

Oder vielleicht gibt Ihnen jemand einen Ratschlag! Ich wäre Ihnen sehr dankbar!

 
Peperoni #:

Hallo!

Ich würde gerne von Programmierern hören, die gegen ein Honorar Ratschläge geben!

Oder vielleicht wird jemand jemanden empfehlen. Ich wäre Ihnen sehr dankbar!

Entweder freiberuflich oder stellen Sie Ihre Frage hier.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.11.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
Grund der Beschwerde: