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

 
STARIJ:

Artem, entweder ist das unauffälliges Trolling oder du weißt nicht, wovon du schreibst!!!

In Ihrem letzten Beitrag sprachen Sie von Sortierung. Ich habe Ihnen erklärt, dass es keine Abhängigkeit von der Sortierung gibt.

Ich habe eine der Diskussionen über die Auswahl der Reihenfolge nach Zeit gesehen und daran teilgenommen. Die Schlussfolgerung war, dass die Aufträge nun in der Auftragsdatenbank nach dem Zeitpunkt ihrer Übermittlung an den Server abgelegt werden. Theoretisch besteht jedoch die Befürchtung, dass die Entwickler dies ändern könnten. Das war das Ende dieser Diskussion. Als Datenbankspezialist kann ich Ihnen versichern, dass diese Befürchtung unbegründet ist, ein Wechsel kommt nicht in Frage. Sie können das Problem an die Entwickler weiterleiten. Wenn ich etwas schreibe, weiß ich, was ich schreibe. Es ist der 50. Jahrestag der Programmierung. Wenn Sie in meinen Beiträgen eine Unordnung aus Ihrer Sicht feststellen, schreiben Sie mir persönlich. Ich werde es Ihnen erklären, und Ihre Zweifel werden verschwinden. Aber hier ist Gezänk wohl kaum angebracht. Ich habe dem Mann ein Drehbuch geschrieben - er hat sich bedankt. Ist das nicht gut?

Das dachten sich auch all die Menschen, die plötzlich von der Sortierung abhängig waren. Die Logik der Menschen ist zusammengebrochen. Dann verschwand die Abhängigkeit von der Sortierung wieder. Aber das ist bereits geschehen. Wenn Sie sich nicht auf Ihr Programm, sondern auf eine hypothetische invariante Sortierung verlassen wollen, haben Sie das Recht, aber in einem Anfängerhilfe-Thread haben Sie kein solches Recht - ein Skript zu geben und nicht zu erwähnen, dass es eines Tages fehlschlagen könnte. Suchen Sie nach solchen Diskussionen auf mql4.com - vor etwa 6 - 7 Jahren.

Genau das habe ich erwähnt - die Person sprach von Stoploss, nicht von Verlust.

Danke sagte er - höflich, aber er weiß nicht, ob es richtig oder falsch ist ;)

 
Artyom Trishkin:

Genau das habe ich erwähnt - der Mann sprach von Stoploss, nicht von Verlust.

Er hat sich bedankt - das ist höflich, aber er weiß nicht, ob es richtig oder falsch ist ;)

Sehen Sie sich genau an, was der Mann geschrieben hat.

X = OrderProfit( );        // запомнить величину тейкпрофита

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY))     // если ПОСЛЕДНИЙ ордер                  
if ( OrderType ()==OP_SELL)  // СЕЛ

if(X < 0)                 // и если этот сел закрылся по стопу 

Daraus folgt, dass er sich auf verlorene Aufträge bezog. So versteht er den Stop-Loss. Er hat das Wortstoploss nicht.

Ich wollte auch schreiben, dass die Stops eine verallgemeinerte Bezeichnung für StopLoss und TakeProfit sind. Um dies zu sehen, geben Sie 130 in MetaEditor ein und drücken Sie F1

Haltestellen. Plural.

Ich arbeite hier, Sie lenken mich ab.

Sagen wir besser datetime --> TimeToStruct -->MqlDateTime Wie konvertiert man jetzt zurück in datetime?

 
STARIJ:

Sehen Sie sich genau an, was der Mann geschrieben hat

Daraus folgt, dass er sich auf verlorene Aufträge bezog. So versteht er den Begriff "Stopp". Er hat das Wortstoploss nicht.

Ich wollte ihm auch sagen, dass "Stop" ein allgemeiner Name für "StopLoss" und "TakeProfit" ist. Um dies zu sehen, geben Sie 130 in MetaEditor ein und drücken Sie F1

Haltestellen. Plural.

Ich arbeite hier, Sie lenken mich ab.

Sagen wir besser datetime --> TimeToStruct -->MqlDateTime Wie konvertiert man zurück in datetime?

if(X < 0)                 // и если этот сел закрылся по стопу 

StructToTime()

 
виталик: Auf dem Stundenchart wurde eine Linie zwischen Hoch und Tief gezogen
//+-------------------------------------------------------+
//| на H1 суточную линию между хая и лоу         PROBA.mq4|
//+-------------------------------------------------------+
#property strict

void OnStart()
{
  // Удалим все объекты
  ObjectsDeleteAll();

  string Символ = "GBPUSD";
  datetime Первый, Последний;
  int Период=PERIOD_H1;

  // Прежде всего узнаем дату и время последнего бара
  Последний = iTime(Символ, Период, 0);
  Alert("Последний бар на часовом  ",Последний);

  // Теперь получить начало суток, обнулив часы
  // Для этого преобразуем время последнего бара в структуру
  MqlDateTime MqlПервый;
  TimeToStruct(Последний,MqlПервый);
  MqlПервый.hour=0;



  // Терерь надо обратно преобразовать во время
  Первый=StructToTime(MqlПервый);
  Alert("Первый бар на часовом  ",Первый); // Смотрим начало первого бара суток

  // По времени определим номер первого бара суток
  int НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);
  Alert("Первый бар на часовом под номером ",НомерПервого);

// Можно было просто узнать время начала бара на D1


  
  // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
  // Найдем на этом интервале номера баров, где макс и мин
  // iHighest и iLowest находят номер бара с макс и мин ценой
  int БарМакс = iHighest(Символ,  // symbol = инструмента
                Период,           // timeframe = Период
                MODE_HIGH,        // Наибольшая цена бара
                НомерПервого+1,   // Количество баров
                0);               // Начальный бар

  int БарМин  = iLowest(Символ,
                Период,
                MODE_LOW,         // Наименьшая цена бара
                НомерПервого+1,
                0);

  Alert("Максимальный бар = ", БарМакс, "  Минимальный бар = ", БарМин);

  // iHigh и iLow дают макс и мин цены указанного бара
  double max_price=iHigh(Символ, Период, БарМакс);
  double min_price=iLow (Символ, Период, БарМин);
  Alert("Максимум цены = ", max_price, "  Минимум цены = ", min_price);

  // Проводим линию
  ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[БарМакс], max_price, Time[БарМин], min_price);
  ObjectSet("Макс_Мин",OBJPROP_RAY,false);     // Выключить свойство бесконечного луча

  // Теперь хорошо бы узнать угол
  Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));
}

// Es gibt 0.0 zurück Der Winkel sollte eingestellt werden und dann sollte er erhalten werden...
// Wenn Sie also die Preisdifferenz und die Anzahl der Balken zwischen Max und Min kennen, sollten Sie den Winkel berechnen.
// Ich denke, es könnte kürzer sein...

 
STARIJ:

// Rückgabe 0,0 Der Winkel sollte eingestellt und dann ermittelt werden...
// Wenn Sie also die Preisdifferenz und die Anzahl der Balken zwischen Max und Min kennen, sollten Sie den Winkel berechnen
// Ich denke, es könnte kürzer sein...


vielen Dank )
 
Artyom Trishkin:   StructToTime()
Danke, ich habe es gefunden. Es hat sich herausgestellt, dass ich sie bereits benutzt habe. Hatte erwartet, es in der Hilfe für eine von datetime TimeToStruct MqlDateTime zu sehen
 
-Aleks-:

Ich kann nicht herausfinden, wie man Variablen hinzufügt - z. B. sagen wir, ich habe 4 boolesche Variablen und muss sie durchgehen?

Ich verstehe, worum es geht - der Rest sollte nach der Division kleiner oder größer als Null sein -, aber ich kann nicht herausfinden, wie man das macht :(


Bei booleschen Werten ist der Ansatz etwas anders

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=15;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int n=0;n<N;n++)
     {
      int tmp=n;
      bool a= (bool) MathMod(tmp,2);
      tmp=tmp/2;
      bool b= (bool) MathMod(tmp,2);
      tmp=tmp/2;
      bool c= (bool) MathMod(tmp,2);
      tmp=tmp/2;
      bool d= tmp;

      Print("N=",n,"; A=",a,"; B=",b,"; C=",c,"; D=",d);
     }

  }

Binäre Kodierung.

Maximal N ist in diesem Fall kleiner als 16.

Ich kann nicht verstehen, was Sie erreichen wollen

 
Victor Nikolaev:


Bei booleschen Werten ist der Ansatz etwas anders

binäre Kodierung.

Das maximale N ist in diesem Fall kleiner als 16

Ich verstehe nicht, worauf Sie hinauswollen.

Du bist ein Genie! Ich danke Ihnen!

Ich habe 16 Optionen.

2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=15; A=wahr; B=wahr; C=wahr; D=wahr
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=13; A=wahr; B=falsch; C=wahr; D=wahr
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=9; A=wahr; B=falsch; C=falsch; D=wahr
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=1; A=wahr; B=falsch; C=falsch; D=falsch
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=5; A=wahr; B=falsch; C=wahr; D=falsch
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=3; A=wahr; B=wahr; C=falsch; D=falsch
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=11; A=wahr; B=wahr; C=falsch; D=wahr
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=7; A=wahr; B=wahr; C=wahr; D=falsch
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=14; A=false; B=true; C=true; D=true
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=6; A=false; B=true; C=true; D=false
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=10; A=false; B=true; C=false; D=true
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=2; A=false; B=true; C=false; D=false
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=12; A=false; B=false; C=true; D=true
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=4; A=false; B=false; C=true; D=false
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=8; A=false; B=false; C=false; D=true
2017.05.14 20:47:54.697 Brut AUDUSD,H1: N=0; A=falsch; B=falsch; C=falsch; D=falsch

Wofür ich es verwenden möchte - ich habe eine Reihe von Filtern und Positionsmanagement-Optionen in meinem EA - ich möchte sie zu kombinieren, einschließlich der Herstellung von Mini-Sets (vorgefertigte Kombinationen) - als Ergebnis werde ich Daten für die Analyse zu erhalten, während nicht auf die Probe, die hoffentlich den Horizont der Wahrnehmung der Einstellungen Einfluss auf das Ergebnis erweitern voreingenommen werden. Das Ergebnis wird eine Reihe von Ergebnissen sein, die ich im Detail analysieren werde. Und es gibt noch einen weiteren Grund: Ich habe eine Klasse zur Erfassung von Statistiken, die eine begrenzte Anzahl von Variablen in einer Datei speichert, was eine detaillierte Analyse verhindert.
 
виталик:

vielen Dank )

STARIJ:

// Rückgabe 0,0 Der Winkel sollte eingestellt und dann ermittelt werden...
// Wenn Sie also die Preisdifferenz und die Anzahl der Balken zwischen Max und Min kennen, sollten Sie den Winkel berechnen
// Ich denke, es könnte kürzer sein...


Ich glaube, ich muss mir das Diagramm als Indikator ansehen, aber ich glaube, ich muss mir das Diagramm als Indikator ansehen, damit ich sehen kann, wie ich es dazu bringe, mehr als einen Tag zu funktionieren.

#property indicator_chart_window
extern int boom = 1;
//=================================
void fishka(int ma,int mi,double map,double mip) // ф-ция
{
   ObjectCreate("Макс_Мин",OBJ_TRENDBYANGLE,0, Time[ma], map, Time[mi], mip);// Проводим линию
   ObjectSet("Макс_Мин",OBJPROP_RAY,false);     // Выключить свойство бесконечного луча
}

int deinit()
  {

 ObjectsDeleteAll();// Удалим все объекты
  return(0);
  }

void start()
{  
  string Символ = "GBPUSD";
  datetime Первый, Последний;
  int Период=PERIOD_H1;

  Последний = iTime(Символ, Период, 0);// Прежде всего узнаем дату и время последнего бара
 
if(boom){
   Alert("Последний бар на часовом  ",Последний);}
 
  
  MqlDateTime MqlПервый;              // Теперь получить начало суток, обнулив часы
  TimeToStruct(Последний,MqlПервый);  // Для этого преобразуем время последнего бара в структуру
  MqlПервый.hour=0;

  
  Первый=StructToTime(MqlПервый);            // Терерь надо обратно преобразовать во время
if(boom){
  Alert("Первый бар на часовом  ",Первый);}  // Смотрим начало первого бара суток
  
  int НомерПервого=iBarShift(Символ, PERIOD_H1,Первый);// По времени определим номер первого бара суток
if(boom){
   Alert("Первый бар на часовом под номером ",НомерПервого);}

// Можно было просто узнать время начала бара на D1

  // Теперь у нас есть НомерПервого бара, а номер послелнего = 0
  // Найдем на этом интервале номера баров, где макс и мин
  // iHighest и iLowest находят номер бара с макс и мин ценой
 int  БарМакс = iHighest(Символ,  // symbol = инструмента
                Период,           // timeframe = Период
                MODE_HIGH,        // Наибольшая цена бара
                НомерПервого+1,   // Количество баров
                0);               // Начальный бар

int  БарМин  = iLowest(Символ,Период,MODE_LOW,НомерПервого+1,0); // Наименьшая цена бара
                               
if(boom){
  Alert("Максимальный бар = ", БарМакс, "  Минимальный бар = ", БарМин);}
                                                                           

 
double max_price=iHigh(Символ, Период, БарМакс); // iHigh и iLow дают макс и мин цены указанного бара
double min_price=iLow (Символ, Период, БарМин);
   
    fishka(БарМакс,БарМин,max_price,min_price); // ф-ция
 if(boom){
   Alert("Максимум цены = ", max_price, "  Минимум цены = ", min_price);
 
   Alert("Угол = ", ObjectGetDouble(0,"Макс_Мин",OBJPROP_ANGLE));} // Теперь хорошо бы узнать угол               
}
 
STARIJ:

Wenn um 4 Uhr morgens - nicht viele Bars noch für heute. Auf H4 gibt es nur 6 Balken pro Tag. Sie müssen die Anzahl der zu suchenden Balken oder die Anzahl der Kreuzungen festlegen.

Große Entfernungen = Trend

Ich habe versucht, es als Skript auszuführen, es funktioniert, aber wenn ich es als EA kompilieren, sind alle Zeilen nahe beieinander und ich verstehe nicht, was das Problem ist
Grund der Beschwerde: