[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 933

 
Dimka-novitsek:

Ecco qui


Il consulente funziona. Apre gli scambi
 
gheka:

Sono ancora perplesso e non capisco, non capisco da dove viene il numero di sequenza unico, tutto è diverso negli esempi,

se non mi sbaglio non sono io a crearlo, per esempio

Visto che hai cancellato la domanda dal PM, senza aspettare una risposta - la butto qui:

Mettiamola in questo modo:

indice -

Posizione dell'ordine o numero d'ordine a seconda del secondo parametro.
(Posizione dell'ordine o numero, da dove viene????)

"Dipende dal secondo parametro" - significa che dipende da "select"??

La posizione dell'ordine è la sua posizione nella matrice degli ordini nel tuo terminale. Questa è esattamente la posizione che stiamo cercando nel ciclo:

Ricerca dell'ordine:

for (int index=0; index<OrdersTotal(); index++) // Цикл по терминалу. В кач-ве переменной цикла будет index для наглядности
    {
       if (OrderSelect(index, SELECT_BY_POS) && OrderMagicNumber()==Magic) // Если выбран ордер и магик равен магику советника
           {
                if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
                   {
                       //............... Тут код обработки выбранного орд
                   }
           }
    }

Se stiamo cercando SELECT_BY_POS, il prossimo parametro è di default MODE_TRADES e potete ometterlo. L'Expert Advisor cercherà le posizioni che non sono ancora chiuse, cioè sul mercato.

Se abbiamo bisogno di cercare ordini che sono già stati chiusi, allora dobbiamo aggiungere il seguente parametro dopo il SELECT_BY_POS: MODE_HISTORY. Poi l'Expert Advisor cercherà solo nella lista delle posizioni chiuse e degli ordini cancellati o attivati.

(Se non mi sbaglio, questi sono gli ordini che sono già stati impostati, giusto? "0" è il primo in alto,
"1" è il secondo nella lista, e così via).

Esattamente questa è la posizione, la posizione dell'ordine nella matrice degli ordini del terminale, per così dire - il suo indice - proprio l'indice
... E si trovano nell'array a partire dalle celle zero dell'array, anche se il numero d'ordine inizia con 1. Cioè, il primo ordine si trova nella cella zero della matrice, il secondo nella prima, il terzo nella seconda, ecc.

Ora per il biglietto. Il biglietto, un numero unico di un ordine, viene assegnato dalla vostra società di intermediazione. In base a questo numero possiamo identificare chiaramente questo stesso ordine o posizione. Tuttavia, abbiamo alcune riserve. Il biglietto deve essere salvato da qualche parte nell'EA (una variabile o un array) in modo da sapere esattamente in quale ordine è necessario avere questo biglietto. A questo scopo, uso la funzione order book del mio EA, dove memorizzo non solo i dati degli ordini che si possono ottenere con le funzioni standard, ma vi memorizzo anche, per esempio, i livelli di Fibo, che calcolo subito dopo aver aperto una posizione e poi li inserisco nel mio order book. Poi scelgo facilmente una posizione in base al suo tempo di apertura e prelievo e sposto il livello di stop secondo i livelli Fibo che ho salvato per questa posizione nel mio array di ordini ... Da lì posso anche ottenere il biglietto dell'ordine che mi serve e usarlo in seguito con le funzioni standard:

   if (OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime()==0) // Если выбран ордер по тикету и время его закрытия равно нулю
      {
         if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
            {
               //............... Тут код обработки выбранного ордера
            }
      }

Qui è necessario confrontare il tempo di chiusura dell'ordine con zero. Perché durante la selezione contro il ticket, MODE_TRADES e MODE_HISTORY sono ignorati e non vengono utilizzati e dobbiamo vedere il momento della chiusura dell'ordine per determinare se è chiuso e viene selezionato dalla lista delle posizioni aperte. Se è ancora sul mercato, anche il suo tempo di chiusura sarà zero.
Se vuoi vedere i dati di un ordine chiuso e devi sceglierlo per ticket, il tempo di chiusura deve essere confrontato con zero, e se lo è, l'ordine è già stato chiuso.

piscina -

Fonte dei dati per la selezione. Si usa quando il parametro select è uguale a SELECT_BY_POS. Può essere uno dei seguenti valori:
MODE_TRADES (default) - l'ordine è selezionato tra gli ordini aperti e in sospeso,
questi sono ordini correnti


MODE_HISTORY - l'ordine è selezionato tra gli ordini chiusi e cancellati.

e questo è dalla lista degli ordini completati, come dalla lista del log, giusto?

Questo è corretto.

doppio OrderProfit( )
restituisce un profitto netto, ma quale? l'ultimo ordine o tutti gli ordini?

Restituisce il profitto attuale per l'ordine che non è ancora stato chiuso.

Se l'ordine è già stato chiuso, restituirà il profitto o la perdita di questo ordine. Uno, selezionato.

Senza tener conto di swap, commissioni, ecc... Per tenerne conto, dobbiamo creare la nostra funzione.

=============================================================================

Spero che lo capirete ... :)
 

Il consulente funziona. È l'apertura delle contrattazioni.

Grazie!!!! Sapere che la piattaforma di trading è malata, a quanto pare.

 
Renown:
C'è bisogno di un EA per smussare la volatilità (ecco il valore: High[iHighest(NULL, 0, MODE_HIGH, 30, 1)] - Low[iLowest(NULL, 0, MODE_LOW, 30, 1)] ) della media mobile esponenziale. Per quanto ho capito, non può essere fatto da iMA standard e devo scrivere una funzione per questo? Qualcuno può aiutarmi con il codice?


iMAOnArray

 

buon giorno a tutti.... c'è un problema...qualcuno può aiutare...?

Sto facendo trading con un EA basato sul principio della martingala... ho deciso di includervi anche uno stop loss... per calcolare una perdita ho usato la seguente formula...

Stopper = AveragePrice - Stoploss * Point; questo non mi va bene, perché lo stopper in questo caso cambia per le prossime curve... e vorrei che fosse fisso per tutte le curve, per esempio 100 pips .... cioè, dopo aver aperto un ordine lo stop è impostato a 100 pips...Diciamo che il secondo ginocchio si apre dopo 30 pips quindi lo stop dovrebbe essere di 70 pips per arrivare allo stesso posto del primo ... in breve, ho bisogno di uno stop loss fisso immutabile per tutta la serie ... se non ti dispiace spiegarlo)))) o mandarmi la funzione)))) te ne sarei grato
 

È sorta una domanda sul rilevamento di un tasto premuto. È necessario tracciare il fatto di premere e se, per esempio, K viene premuto, allora eseguiamo alcune azioni. Qui ( _http://msdn.microsoft.com/en-us/library/ms646293%28v=VS.85%29.aspx ) ha trovato la funzione int GetAsyncKeyState(int vKey) che è in linea di principio ciò di cui ho bisogno... Ma c'è una fregatura: il fatto di premere deve essere definito solo se una finestra MetaTrader è attiva. Sto usando il seguente semplice codice nel mio Expert Advisor per controllare:

#define VK_K                            0x4B    // K key 
#import         "user32.dll"
   int GetAsyncKeyState(int vKey);

//-----------------------------------------------------------------------------------------------//
int init()  {

 return(0);
}
//-----------------------------------------------------------------------------------------------//
int deinit()   {

 return(0);
}
int start() {
   if(GetAsyncKeyState(VK_K)==0) Print("K не нажата...");
   else {Alert("НАЖАТА K");}
 return(0);
}
Stavo ascoltando gli avvisi mentre scrivevo questo post :). Per favore, aiutatemi a superare questo problema =)
 

L'orrore!!! Amici, mi sono perso... :)

Ci sono due cicli annidati. Quando esco da quello interno per interruzione, dove esco - all'inizio o alla fine del ciclo esterno?

Alla staffa di chiusura della staffa esterna o alla staffa di apertura?

 
artmedia70:

L'orrore!!! Amici, mi sono perso... :)

Ci sono due cicli annidati. Quando esco dal ciclo interno con una pausa, dove esco - all'inizio o alla fine del ciclo esterno?

Alla staffa di chiusura dell'esterno o alla staffa di apertura?

codice nello studio.

Infatti, proprio dietro la parentesi di chiusura del ciclo interno

 
Necron:

codice per favore.

Infatti, appena dietro la parentesi di chiusura del ciclo interno

Grazie. Questo è esattamente quello che ho fatto, ma mi sono venuti dei dubbi se devo controllare il flag nel ciclo esterno prima della parentesi di chiusura o all'inizio dopo la parentesi di apertura...
 

Nessuno sa come fare un arresto fisso per la serie ((((

Ci sono molti professionisti qui, il lavoro probabilmente non è così difficile.