Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 17

 
Combinatore:
Perché se non è visibile comunque?

Questi parametri possono essere tralasciati se non c'è bisogno di visualizzare un indicatore.

E la compatibilità con il vecchio codice non sarà compromessa. Durante il test, l'indicatore è sempre visualizzato.

 
Slawa:

Perché è impossibile impostare le proprietà di visualizzazione (parte del disegno) tramite la maniglia dell'indicatore (parte del calcolo). Un bug è quando qualcosa è scritto in un modo, ma funziona in un altro modo.

Qui è necessario un approccio diverso. Accesso all'indicatore per nome breve, come nel gruppo di funzioni ChartIndicatorXXX. Qualcosa come ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)

Ci abbiamo già pensato, ma non l'abbiamo ancora fatto.

Se è destinato agli indicatori impostati programmaticamente, non sarebbe meglio sostituire l'evidenziato con la maniglia dell'indicatore?
 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Peculiarità del linguaggio mql5, consigli e trucchi

fxsaber, 2017.02.25 16:02

  static bool HistoryDealSelect( MqlTradeResult &Result )
  {
    if ((Result.deal == 0) && (Result.order != 0))
    {
      if (::HistorySelectByPosition(::HistoryOrderGetInteger(Result.order, ORDER_POSITION_ID)))
        for (int i = ::HistoryDealsTotal() - 1; i >= 0; i--)
        {
          const ulong DealTicket = ::HistoryDealGetTicket(i);

          if (Result.order == ::HistoryDealGetInteger(DealTicket, DEAL_ORDER))
          {
            Result.deal = DealTicket;

            break;
          }
        }
    }

    return(::HistoryDealSelect(Result.deal));
  }
  // Учтены MT5-нюансы: Result.deal == 0
  static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )
La sincronicità non è più rilevante. Solo il pezzo responsabile della correzione di Result.deal è evidenziato.
 
fxsaber:
La sincronizzazione non è più rilevante. Solo il pezzo responsabile della correzione di Result.deal è evidenziato.
cos'è la "correzione di Result.deal"?
 
Alexey Viktorov:
Se questo è pensato per gli indicatori impostati programmaticamente, non è meglio sostituire l'evidenziato con la maniglia dell'indicatore?
Non meglio. Perché è impossibile senza modifiche all'architettura. Ho descritto il perché nei dettagli.
 
Artyom Trishkin:
cos'è la "correzione di Result.deal"?

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

fxsaber, 2017.02.23 15:34

Dal consiglio di amministrazione.

Il completamento del biglietto commerciale risultante non è garantito. Il riempimento o meno dipende dalla modalità di esecuzione dello strumento e dalle impostazioni del particolare server.

Chi si è sdraiato per un Result.deal non nullo - agire.

 
Roffild:

Questi parametri possono essere tralasciati se non c'è bisogno di visualizzare l'indicatore.

Se volete visualizzarlo, potete mettere queste impostazioni nei parametri.
 
fxsaber:

Beh... Vedo che non si può contare su un Result.deal non nullo. Allora cosa dice questa linea?

// Учтены MT5-нюансы: Result.deal == 0

Dove sono contabilizzati?

 
Artyom Trishkin:

Beh... Vedo che non si può contare su un Result.deal non nullo. Allora cosa dice questa linea?

Dove sono contabilizzati?


In OrderSendSync viene chiamato l'overloaded (vedi sopra) HistoryDealSelect.
 

fxsaber:

static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )

La sincronizzazione non è più rilevante. Solo il pezzo responsabile della correzione di Result.deal è evidenziato.

E permettetemi di chiedere perché statico?
Motivazione: