OI em atraso (interesse aberto) - página 6

 
Renat Akhtyamov:

Ele tem um quarto particular para isso.

E agora você está escrevendo para a mídia, por isso estamos tendo uma discussão.

Também estou deixando claro para você, use sincronia.

Eu uso sincronismo, o que mais posso fazer de um submarino.

 
Dmi3:

....., mas não estou satisfeito com o mecanismo que o prostotrader usa com os magos tortos.


Ou você não entende a natureza dos magos "tortos" ou não quer entender.

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

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

Ou você não entende os mágicos "tortuosos" ou não quer entender.

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

Por quê? Eu entendo exatamente como funciona. Mas eu não quero perder os magos "retos". Sem eles, seria difícil para mim descobrir rapidamente onde e o que está na minha conta no momento.

 
Dmi3:

Por quê? Eu entendo exatamente como funciona. Mas eu não quero perder os medicamentos "diretos". Sem eles, seria difícil para mim descobrir rapidamente onde e o que está na minha conta no momento.

O majik é grande, e tanto a parte constante (id estratégia, por exemplo) quanto a parte "variável" (número de pedido) podem ser embrulhadas nela.

 
Stanislav Korotky:

O majik é grande, então você pode envolver tanto a parte constante (identificação da estratégia, por exemplo) quanto a parte "variável" (número de consulta) nela.

ele tem um int, não um longo
 
Renat Akhtyamov:
Ele tem um int, não um longo

Você não vai acreditar : ) Mesmo com magia int, você pode negociar mais de 1000 EAs com mais de 1000000 combinações de estratégias em cada uma.

 
prostotrader:

Se você ouve um sino, não sabe onde ele está.

"Acertando" no código postado.

......

Como você pode falar de resultados se o código está mal escrito?

......

Tantos "redatores" de Expert Advisors, agarram o trabalho para a MICEX, sem mesmo conhecer muitos princípios básicos de negociação no Mercado de Ações e Derivativos!


Você está ganhando muito com isso! A garota estava indo bem, especialmente em comparação com os personagens dos tópicos vizinhos, que estão tentando conseguir vendedores no mercado sem sequer passar notas em Ciência da Computação com BASIC)

 
Aleksey Mavrin:

Você não vai acreditar : ) Mesmo com magia int, você pode comercializar mais de 1000 EAs com mais de 1000000 combinações de estratégias em cada uma.

E se você tiver lógica em seu cérebro, você estará bem sem mágicos.

A propósito, eu estava apenas dizendo sobre a intenção de ir longe demais se for muito interessante.

desde o programador, por assim dizer...
 
Aleksey Mavrin:


Você está fazendo um grande negócio com isso! A garota estava bem, especialmente comparada aos personagens dos fios vizinhos, que vão ao Mercado como vendedores sem sequer passar no teste do Básico).

o que há de errado com ela?

ela nem sabe qual deve ser sua produção ou o que precisa fazer por ela.

mesmo os experientes não me contaram a pergunta complicada porque você não pode falar sobre isso em cada esquina

Entretanto, sei como obter o resultado certo, pois dediquei cerca de 5 anos ao estudo deste tópico.

 
Dmi3:

Por quê? Eu entendo exatamente como funciona. Mas eu não quero perder os medicamentos "diretos". Sem eles, seria difícil para mim descobrir rapidamente onde e o que está na minha conta no momento.

Se você escreve assim, você não entende como tudo funciona!

Os bits altos do Majic são formados a partir do nome do símbolo, além disso, você pode atribuir uma identificação a cada EA, e os bits baixos

criar uma série de majicles infantis.

Portanto, você tem que afirmar que entende como funciona!

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

Confira

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

Resultado

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

Mudar o símbolo e a identificação da EA para 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

Adicionar ao código

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

Resultado

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

O nome do símbolo + EA id assegurará que o magik seja único,

e nos 0 bytes uma série de majicies infantis (também únicas).

O bigge será criado automaticamente.

Como o login padrão FORTS é limitado a 30 tr./sec, 256 magias infantis serão suficientes para você sem 1 byte.

E toda essa "dança com nós dos dedos" só é necessária em casos extremos, quando a conexão é perdida (servidor MT5 falhou) e você não recebeu um pedido de bilhete.

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