지연 OI(미결제약정) - 페이지 6

 
Renat Akhtyamov :

그는 그것에 대한 스레드가 있습니다

그리고 당신은 지금 언론에 글을 쓰고 있습니다. 그래서 그들은

나는 또한 당신을 이해할 수 있습니다 - 동기식 사용

동기화 및 사용, 잠수함에서 어디로 가야합니다.

 
Dmi3 :

.....하지만, 프로스토트레이더를 사용하는 비뚤어진 마법의 메카니즘은 단연 저에게 어울리지 않습니다.


"비뚤어진" 마법의 본질을 전혀 이해하지 못하거나 이해하고 싶지 않습니다.

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

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

"비뚤어진" 마법의 본질을 전혀 이해하지 못하거나 이해하고 싶지 않습니다.

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

왜요? 나는 그것이 어떻게 작동하는지 완벽하게 이해합니다. 하지만 "직선" 마법을 잃고 싶지 않습니다. 그것들이 없으면 현재 내 계정에서 내가 어디에 무엇을 취했는지 빠르게 파악하기 어려울 것입니다.

 
Dmi3 :

왜요? 나는 그것이 어떻게 작동하는지 완벽하게 이해합니다. 하지만 "직선" 마법을 잃고 싶지 않습니다. 그것들이 없으면 현재 내 계정에서 내가 어디에 무엇을 취했는지 빠르게 파악하기 어려울 것입니다.

결국, 마법은 거대합니다. 상수 부분(예: 전략 ID)과 "변수"(요청 번호)를 모두 포함할 수 있습니다.

 
Stanislav Korotky :

결국, 마법은 거대합니다. 상수 부분(예: 전략 ID)과 "변수"(요청 번호)를 모두 포함할 수 있습니다.

그는 int가 있고 길지 않습니다.
 
Renat Akhtyamov :
그는 int가 있고 길지 않습니다.

믿을 수 없어   :) int magic으로도 1000개 이상의 EA를 각각 1000000개 이상의 전략 조합으로 거래할 수 있습니다.

 
prostotrader :

벨소리가 들리지만 그가 어디에 있는지 모릅니다.

배치된 코드로 "도망쳤습니다".

......

코드가 평범하지 않은 경우 어떻게 결과에 대해 이야기할 수 있습니까?

......

주식 및 파생상품 시장에서 거래의 기본 사항에 대한 많은 지식도 없이 많은 고문 "스크라이블러"가 MICEX를 위해 일합니다!


우리는 쓸데없이 많이 몰았다! 특히 Basic으로 컴퓨터 공학 시험을 통과하지 않고도 판매자를 시장으로 끌어들이는 이웃 주제의 캐릭터와 비교하면 모든 것이 괜찮았습니다.)

 
Aleksey Mavrin :

믿을 수 없어   :) int magic으로도 1000개 이상의 EA를 각각 1000000개 이상의 전략 조합으로 거래할 수 있습니다.

두뇌에 논리가 있다면 규범의 마술사 없이는

그건 그렇고, int에 대해, 그건 그렇고, 그것이 어떻게 든 매우 흥미로운 숫자라면 long을 알아내는 것이 었습니다.

말하자면 프로그래머부터...
 
Aleksey Mavrin :


우리는 쓸데없이 너무 많이 몰았다! 특히 Basic으로 컴퓨터 공학 시험을 통과하지 않고도 판매자를 시장으로 끌어들이는 이웃 주제의 캐릭터와 비교하면 모든 것이 괜찮았습니다.)

그녀에게 무슨 일이?

출력이 무엇인지, 이를 위해 무엇을 해야 하는지조차 이해하지 못합니다.

경험자라도 내 교활한 질문에 대답을 하지 않았어.

그러나 이 주제를 연구하는 데 약 5년을 바쳤기 때문에 올바른 결과를 얻는 방법을 알고 있습니다.

 
Dmi3 :

왜요? 나는 그것이 어떻게 작동하는지 완벽하게 이해합니다. 하지만 "직선" 마법을 잃고 싶지 않습니다. 그것들이 없으면 현재 내 계정에서 내가 어디에 무엇을 취했는지 빠르게 파악하기 어려울 것입니다.

그런 식으로 작성하면 모든 것이 어떻게 작동하는지 이해하지 못합니다 !

매직의 상위 비트는 심볼의 이름으로 구성되며, 또한 각 어드바이저에 ID를 할당할 수 있으며 하위 비트는

일련의 어린이 마술을 만듭니다.

그래서, 당신은 그것이 어떻게 작동하는지 이해했다고 주장해야합니다!

 //+------------------------------------------------------------------+
//|                                                    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!!!
}
//+------------------------------------------------------------------+

점검 해보자

 //+------------------------------------------------------------------+
//|                                                   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 );
  }

결과

 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

어드바이저의 심볼과 id를 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

코드에 추가

   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))));

결과

 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

어드바이저 의 심볼 + id의 이름은 마법의 유일성을 보장하며,

바이트 0에는 일련의 자식 마술(또한 고유)이 있습니다.

마법은 자동으로 생성됩니다.

FORTS의 표준 로그인은 30tr./s로 제한되어 있으므로 1바이트에 의존하지 않고도 256개의 자식 마법으로 충분합니다.

그리고 이 모든 "탬버린과 함께 춤을 춘다"는 최후의 수단으로 만 필요합니다. 통신이 단절되고(MT5 서버가 멈춤) 주문 티켓을 받지 못했을 때 입니다.

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