Nachlaufende OI (offener Anteil) - Seite 6

 
Renat Akhtyamov:

Dafür hat er ein eigenes Zimmer.

Und jetzt schreiben Sie an die Medien, damit wir eine Diskussion führen können.

Ich habe Ihnen auch klar gemacht, dass Sie synchron arbeiten sollen.

Ich benutze synchron, was kann ich sonst von einem U-Boot aus tun.

 
Dmi3:

....., aber ich bin nicht glücklich mit dem Mechanismus, den Prostotrader mit krummen Magiern verwendet.


Entweder verstehst du die Natur der "krummen" Magier überhaupt nicht oder du willst sie nicht verstehen.

https://www.mql5.com/ru/blogs/post/557544

Отслеживание ордера, после команды OrderSendAsync
Отслеживание ордера, после команды OrderSendAsync
  • 2016.10.29
  • www.mql5.com
Отслеживание ордера, после команды OrderSendAsync Михаил | 23 апреля, 2015 В статье рассказывается принцип отслеживания ордера после команды OrderSendAsync, если нет события TradeTransaction
 
prostotrader:

Entweder verstehen Sie die "krummen" Zauberer überhaupt nicht oder Sie wollen es nicht verstehen.

https://www.mql5.com/ru/blogs/post/557544

Und warum? Ich weiß genau, wie das funktioniert. Aber ich möchte nicht, dass die "einfachen" Magier verloren gehen. Ohne sie wäre es für mich schwierig, schnell herauszufinden, wo und was sich gerade auf meinem Konto befindet.

 
Dmi3:

Und warum? Ich weiß genau, wie das funktioniert. Aber ich möchte nicht auf die "direkten" Medizinen verzichten. Ohne sie wäre es für mich schwierig, schnell herauszufinden, wo und was sich derzeit auf meinem Konto befindet.

Die Majik ist groß, und sowohl der konstante Teil (z. B. die Strategie-ID) als auch der "variable" Teil (Anforderungsnummer) können darin verpackt werden.

 
Stanislav Korotky:

Die Majik ist groß, so dass Sie sowohl den konstanten Teil (z. B. die Strategie-ID) als auch den "variablen" Teil (Abfragenummer) darin einschließen können.

er hat einen int, nicht einen long
 
Renat Akhtyamov:
Er hat einen int, nicht einen long

Du wirst es nicht glauben : ) Selbst mit int magic können Sie 1000+ EAs mit 1000000+ Kombinationen von Strategien in jedem handeln.

 
prostotrader:

Sie hören eine Glocke, wissen aber nicht, wo sie ist.

"Hitting" auf den eingestellten Code.

......

Wie kann man von Ergebnissen sprechen, wenn der Code schlecht geschrieben ist?

......

So viele "Autoren" von Expert Advisors, greifen auf die Arbeit für MICEX, nicht einmal wissen, viele Grundlagen des Handels auf dem Aktien-und Derivatemarkt!


Sie machen zu viel daraus! Dem Mädchen ging es gut, vor allem im Vergleich zu den Charakteren aus den benachbarten Themen, die versuchen, Verkäufer auf dem Markt zu bekommen, ohne auch nur eine Note in Informatik mit BASIC zu bestehen).

 
Aleksey Mavrin:

Du wirst es nicht glauben : ) Selbst mit int magic können Sie 1000+ EAs mit 1000000+ Kombinationen von Strategien in jedem handeln.

Und wenn man Logik im Kopf hat, kommt man auch ohne Zauberer zurecht.

Übrigens habe ich gerade gesagt, dass ich mich für eine Long-Position interessiere, wenn ich wirklich daran interessiert bin.

da der Programmierer, sozusagen...
 
Aleksey Mavrin:


Du machst eine große Sache draus! Das Mädchen war in Ordnung, vor allem im Vergleich zu den Figuren in den benachbarten Threads, die als Verkäufer auf den Markt gehen, ohne auch nur den Basistest zu bestehen).

Was ist los mit ihr?

Sie versteht noch nicht einmal, was das Ergebnis sein soll oder was sie dafür tun muss.

Selbst die Erfahrenen haben mir die heikle Frage nicht gestellt, weil man nicht an jeder Ecke darüber reden kann.

Ich weiß jedoch, wie man das richtige Ergebnis erzielt, denn ich habe mich etwa 5 Jahre lang mit diesem Thema beschäftigt.

 
Dmi3:

Warum? Ich weiß genau, wie das funktioniert. Aber ich möchte nicht auf die "direkten" Medizinen verzichten. Ohne sie wäre es für mich schwierig, schnell herauszufinden, wo und was sich gerade auf meinem Konto befindet.

Wenn Sie das schreiben, haben Sie nicht verstanden, wie das Ganze funktioniert!

Die hohen Bits der Majic werden aus dem Namen des Symbols gebildet, außerdem können Sie jedem EA eine ID zuweisen, und die niedrigen Bits

eine Reihe von untergeordneten Majicas erstellen.

Sie müssen also behaupten, dass Sie wissen, wie es funktioniert!

//+------------------------------------------------------------------+
//|                                                    AutoMagic.mqh |
//|                                 Copyright 2017-2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//version   "1.02
ulong symb_magic;
int exp_id;
//-------------------------------------------------------------------+
// Split string function                                             |
//+------------------------------------------------------------------+
string SplitString(const string a_str,ulong &a_month,ulong &a_year)
  {
   int str_size=StringLen(a_str);
   int str_tire=StringFind(a_str, "-");
   int str_tochka=StringFind(a_str, ".", str_tire);
   if((str_tire>0) && (str_tochka>0) &&(str_size > 0))
     {
      a_month= ulong(StringToInteger(StringSubstr(a_str,str_tire+1,str_tochka-str_tire-1)));
      a_year = ulong(StringToInteger(StringSubstr(a_str,str_tochka+1,str_size-str_tochka-1)));
      if((a_month > 0) && (a_year > 0)) return(StringSubstr(a_str, 0, str_tire));
     }
   return("");
  }
//-------------------------------------------------------------------+
// Get Magic function                                                |
//+------------------------------------------------------------------+
ulong GetMagic(const string a_symbol, const int sov_id)
{
  exp_id = -1;
  symb_magic = 0;
  if(SymbolSelect(Symbol(), true) == false)
  {
    Print(__FUNCTION__, ": Нет такого символа!");
    return(0);
  }
  ulong month = 0;
  ulong year = 0;
  string new_str = SplitString(a_symbol,month,year);
  if(StringLen(new_str)>0)
  {
    uchar char_array[];
    int result=StringToCharArray(new_str, char_array, 0, WHOLE_ARRAY, CP_ACP);
    if(result>0)
   {
     ulong value;
     for(int i = 0; i < result - 1; i++)
     {
       value=ulong(char_array[i]);
       value<<=(56 -(i*8));
       symb_magic += value;
     }
     month<<=24;
     symb_magic += month;
     year<<=16;
     symb_magic += year;
     exp_id = sov_id;      //New!!!
     int s_id = exp_id;
     s_id<<=8;             //New !!!   
     symb_magic += s_id;   //New !!!
     return(symb_magic);
   }
 }
  return(0); 
}
//-------------------------------------------------------------------+
// Is my magic function                                              |
//+------------------------------------------------------------------+
bool IsMyMagic(const ulong m_magic)
{
  if(m_magic > 0)
  {
    ulong stored_magic = symb_magic;
   // stored_magic>>=16;
    stored_magic>>=8;   //New!!!
    ulong in_magic = m_magic;
   // in_magic>>=16;
    in_magic>>=8;      //New!!!
    if(in_magic == stored_magic) return(true);
  }  
  return(false);
}
//-------------------------------------------------------------------+
// Get stored magic function                                         |
//+------------------------------------------------------------------+
ulong GetStoredMagic()
{
  if(symb_magic > 0) return(symb_magic);
  return(0);  
}
//-------------------------------------------------------------------+
// Get expert ID function                                            |
//+------------------------------------------------------------------+
int GetExpertId()
{
  return(exp_id);                //New!!!
}
//+------------------------------------------------------------------+

Auschecken

//+------------------------------------------------------------------+
//|                                                   Test_magic.mq5 |
//|                                      Copyright 2021 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
#include "AutoMagic.mqh"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ulong new_magic = GetMagic(Symbol(), 22);
   Print("Magic is: ", new_magic);
   ulong f_magic = new_magic;
   ulong a_letter = (f_magic>>56)&255;
   Print("7 byte: ", CharToString(uchar(a_letter)));   
   f_magic = new_magic;
   a_letter = (f_magic>>48)&255;
   Print("6 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>40)&255;
   Print("5 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>32)&255;
   Print("4 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>24)&255;
   Print("3 byte (month): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic>>16)&255;
   Print("2 byte (year)): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic>>8)&255;
   Print("1 byte (expert id or series of magics): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic&255);
   Print("0 byte (series of magics): ", a_letter);
//---
   return(INIT_SUCCEEDED);
  }

Ergebnis

2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       Magic is: 5138409554846225920
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       7 byte: G
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       6 byte: O
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       5 byte: L
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       4 byte: D
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       3 byte (month): 3
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       2 byte (year)): 21
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       1 byte (expert id or series of magics): 22
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       0 byte (series of magics): 0

Ändern Sie das Symbol und die ID des EA in 122

2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        Magic is: 5932457868670630400
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        7 byte: R
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        6 byte: T
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        5 byte: S
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        4 byte: 
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        3 byte (month): 3
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        2 byte (year)): 21
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        1 byte (expert id or series of magics): 122
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        0 byte (series of magics): 0

Zum Code hinzufügen

   for(int i = 0 ; i<256;i++)
   {
     Print("My magic: ", string(IsMyMagic(new_magic + ulong(i))));
}Print("My magic: ", string(IsMyMagic(new_magic + ulong(256))));

Ergebnis

2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
.......................................................................
2021.01.19 10:53:40.451	Test_magic (RTS-3.21,M1)	My magic: false

Der Symbolname + EA-ID stellt sicher, dass die Magie eindeutig ist,

und im 0-Byte eine Reihe von Child-Majics (ebenfalls eindeutig).

Die Bigge wird automatisch erstellt.

Da der FORTS-Standard-Login auf 30 Tr./sec. begrenzt ist, reichen Ihnen 256 Kinderzauber ohne 1 Byte aus.

Und dieses "Tanzen mit den Knöcheln" ist nur in extremen Fällen notwendig, wenn die Verbindung unterbrochen ist (MT5-Server ist abgestürzt) und Sie keine Ticketbestellung erhalten haben.

Документация по MQL5: Предопределенные переменные / _Symbol
Документация по MQL5: Предопределенные переменные / _Symbol
  • www.mql5.com
_Symbol - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5