Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 766

 
Aleksey Vyazmikin:

Propongo di non deviare dal concetto, che, come ho capito, era di copiare una certa quantità di dati delle barre all'inizio del codice, e poi lavorare con questi dati - o stai suggerendo un'eccezione?

E cosa le fa pensare che io sia un programmatore?

Non credo che sia necessario indovinare - cosa sarà più veloce, a volte la risposta può non essere ovvia - solo l'esperienza può dare una risposta a tali domande.

Allora siete i benvenuti qui.

 
Vitaly Muzichenko:

Devi cancellare gli oggetti con un Ticket che sono già nella storia, ma non quelli che sono ancora sul mercato.

Avete bisogno di un biglietto per una posizione chiusa, ma non potete ottenerlo con PositionSelect().

 
Vitaly Muzichenko:

è necessario cancellare gli oggetti con un biglietto che sono già nella storia, ma non quelli che sono ancora sul mercato

Duplicato:

E se il compito è "invertito"?

Rimuovere gli oggetti del biglietto le cui posizioni sono già fuori dal mercato... o NON rimuovere gli oggetti dei biglietti, che non sono ancora nella storia, e rimuovere il resto... Che è fondamentalmente la stessa cosa.

 
Ivan Ivanov:

In breve, avete bisogno del biglietto della posizione già chiusa, ma non potete ottenerlo con PositionSelect().

Ecco uno script che restituisce tutti i ticket di posizione chiusi per un dato periodo storico.

void OnStart()
{ ulong DealTicket; // for Function : replace void with ulong
  ulong PositionTicket;
  if ( HistorySelect(TimeCurrent()-30*24*60*60,TimeCurrent()) ) // Select History = 30 days
  { if ( HistoryDealsTotal()>0 )
    { int DealIndex=HistoryDealsTotal()-1;
      while ( DealIndex>=0 )
      { DealTicket=HistoryDealGetTicket(DealIndex); // select Deal 
        if ( HistoryDealGetInteger(DealTicket,DEAL_ENTRY)==DEAL_ENTRY_OUT ) // Deal close Position
        { PositionTicket=HistoryDealGetInteger(DealTicket,DEAL_POSITION_ID);
          Print("\n DealTicket = "+IntegerToString(DealTicket));
          Print("PositionClosedByDeal = "+IntegerToString(PositionTicket));
          // if ( some condition ) // for Function : Your selection
          // return (PositionTicket); // for Function : Enable return
        }
        DealIndex--;
      }
      // Print("Warning = Nothing selected from History"); // for Function : remove //
    }
    else Print("Warning = Empty History (select longer History)");
  }
  else Print("Error = "+IntegerToString(GetLastError())+" = Not loaded History");
  // return (-1); // for Function : Enable return
}

Il codice dice come convertirlo in una funzione (in inglese)

 
Ivan Ivanov:

Ecco lo script che restituisce il biglietto di tutte le posizioni chiuse per un dato periodo storico.

Il codice mostra come convertirlo in una funzione (in inglese)

La cosa più interessante è che è stato già menzionato subito:

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

Domande dai principianti MQL5 MT5 MetaTrader 5

Artyom Trishkin, 2017.07.24 23:33

Avete provato a cercare un commercio chiuso (OUT)? L'ordine era lì - si può vedere.

Ma Vitaly non capiva il significato di ciò che era scritto. E non mi ha nemmeno chiesto di ripeterlo.
 
Artyom Trishkin:

La cosa interessante è che questo è stato già menzionato subito:

Ma Vitaly apparentemente non ha afferrato il significato di scritto. E non mi ha nemmeno chiesto di ripeterlo.

Grazie Artyom, ho deciso di lasciarlo per dopo, ho chiesto mentre dormivo)


Ivan Ivanov:

Ecco lo script che restituisce il biglietto di tutte le posizioni chiuse per un dato periodo storico.

Il codice dice come convertirlo in una funzione (in inglese)

Grazie per il codice, mi ha aiutato.


Problema risolto!

 
Artyom Trishkin:

La cosa interessante è che questo è già stato menzionato subito:

Ma Vitaly non sembrava afferrare il significato di ciò che era scritto. E non l'ha nemmeno chiesto di nuovo.

Al moderatore:

L'uomo voleva il codice (idea di implementazione). E non c'era, ma è stato mandato a Freelance.

 
Ivan Ivanov:

Al moderatore:

La persona vuole il codice (idea di implementazione). E lì NON è stato battuto, ma mandato in freelance.

Il moderatore ha un nome?
Conosco Vitaly. È sufficiente che lui mostri la giusta direzione. Il codice è per i pigri e gli idioti. E non è stato Vitaly ad essere mandato a fare il libero professionista. Ma qualcuno che non è un programmatore.
Un'idea di implementazione è un'idea, un algoritmo.
E l'implementazione è il codice, e non sempre quello giusto.

 
Artyom Trishkin:
Il moderatore ha un nome?
Conosco Vitaly. È sufficiente che lui mostri la giusta direzione. Il codice è per i pigri e gli idioti. E non è stato Vitaly ad essere mandato come freelance. Ma per qualcuno che non è un programmatore.
L'idea di implementazione è un'idea, un algoritmo.
E l'implementazione è il codice, e non sempre quello giusto.

Qualcuno che non è un programmatore ha un nome?

Sì, non sono un programmatore per educazione, ma ogni giorno lavoro per padroneggiare questa abilità non facile.

 
Aleksey Vyazmikin:

Qualcuno che non è un programmatore ha un nome?

Sì, non sono un programmatore di formazione, ma lavoro ogni giorno per padroneggiare questa abilità non facile.

Ah, ecco qua. Hai ancora il desiderio di imparare a programmare? Allora cercate di capire ciò che viene offerto e non fatevi passare per esaminatori. Senza offesa, ma è così che ho capito tutte le obiezioni e le domande su CopyRates().

Neanche io sono un programmatore per formazione. Quando ho studiato non c'era questa specialità e contava su un aritmometro "Felix".

Motivazione: