滞后的OI(未平仓利息)。 - 页 6

 
Renat Akhtyamov:

他有一个私人房间来做这个。

而现在你在给媒体写信,所以我们在进行讨论。

我也在向你说明,使用同步的。

我确实使用了同步,我在潜艇上还能做什么。

 
Dmi3:

.....,但我对prostotrader使用的歪曲法师的机制不满意。


你要么根本不了解 "歪门邪道 "法师的本质,要么不想了解。

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:

为什么?我完全明白它是如何运作的。但我不希望失去 "直接 "的媒介。如果没有它们,我将很难迅速弄清我的账户目前在哪里,有什么东西。

majik很大,常量部分(例如策略ID)和 "变量 "部分(请求号)都可以被包裹在其中。

 
Stanislav Korotky:

majik很大,所以你可以把常量部分(比如说策略ID)和 "变量 "部分(查询号码)都包进去。

他有一个int,而不是一个long
 
Renat Akhtyamov:
他有一个int,而不是一个long

你不会相信的:)即使使用int magic,你也可以交易1000多个EA,每个EA有1000000多个策略组合

 
prostotrader:

你听到铃声,你不知道它在哪里。

"打 "上张贴的代码。

......

如果代码写得不好,你怎么能谈论结果

......

这么多专家顾问的 "作者 "都在为MICEX工作,甚至不知道股票和衍生品市场交易的许多基本知识!这些人都是在为MICEX工作。


你把它看得太重了!这个女孩做得很好,特别是与邻近主题的人物相比,他们试图在市场上获得卖家,甚至没有通过计算机科学与BASIC的成绩))。

 
Aleksey Mavrin:

你不会相信的:)即使使用int magic,你也可以交易1000多个EA,每个EA有1000000多个策略组合。

而如果你的大脑中有逻辑,没有魔术师你也会很好。

顺便说一下,我只是说如果我真的对它感兴趣,就去做多。

既然是程序员,可以这么说...
 
Aleksey Mavrin:


你这是小题大做啊!这个女孩还不错,特别是与邻近线段的人物相比,他们甚至没有通过基础知识测试就去市场当推销员)。

她有什么毛病?

她甚至不明白输出应该是什么,或者她需要为之做什么。

即使是有经验的人也没有告诉我这个棘手的问题,因为你不可能在每个角落都谈论它

然而,我知道如何获得正确的结果,因为我花了大约5年时间来研究这个问题。

 
Dmi3:

为什么?我完全明白它是如何运作的。但我不希望失去 "直接 "的媒介。如果没有它们,我将很难迅速找到我的账户中目前的位置和内容。

如果你这样写,你就不明白 这一切是如何运作的!你是谁?

Majic的高位是由符号的名称形成的,此外,你可以给每个EA分配一个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

将EA的符号和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

符号名称+EA id将确保magik是唯一的。

而在0字节中,有一系列的子母项(也是唯一的)。

大的将会被自动创建。

由于FORTS标准登录被限制在30tr./sec,256个儿童魔法将足够你使用,没有1个字节。

而所有这些 "用指关节跳舞 "只有在极端情况 下才需要,当连接丢失(MT5服务器崩溃),你没有收到票据订单

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