Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 897

 
Taras Slobodyanik:

- Guarda il tempo dell'ultima barra
- sommare tutto ciò che è stato chiuso su questo bar
- sottrarre dal saldo corrente

e così via, una barra alla volta.

Non puoi farlo senza aritmetica? Forse potresti scrivere una specie di funzione definita dall'utente?

 
novichok2018:
Probabilmente non ho formulato correttamente la mia domanda, dato che le risposte sono fuori tema. Non mi interessa se le posizioni sono chiuse o meno, e non mi interessa il valore di un tick. Ho bisogno di sapere quale era il saldo del conto al momento della chiusura di 1, 2, 3 barre di un particolare simbolo per il confronto. Le posizioni su queste barre sono state aperte e chiuse, comprese le posizioni su altri simboli: in alcuni casi le posizioni sono state chiuse in positivo, in altri casi - in negativo, in altri casi - non ancora chiuse, significa che il saldo è cambiato. Ho bisogno di sapere i valori specifici. Grazie.

non ci sono funzioni standard, così come nessuna ricerca attraverso il forum o qualsiasi altro modo

Nel tester, è possibile simulare la seguente situazione: quando si fa trading utilizzando diversi Expert Advisors, non si può sapere quale equilibrio era in quel momento. Naturalmente, si può provare a contare gli ordini che sono stati aperti, e poi cercare un momento in cui non c'erano ordini aperti nella storia del terminale ... E il risultato finale non significa che tutto sarà preso in considerazione

nel tester si può facilmente simulare questa situazione - descrivere nell'ambito globale una variabile e controllare la condizione in OnTick if(OrderTotal()==0) StartBalance = AccountBalance();

e poi, quando si aprono gli ordini nel tester, si ha il valore iniziale di balance.... Potete aggiungere ad ogni barra il valore degli ordini di profitto, potete aggiungere questi valori ad un array o ad una lista


Ma se volete usare questo codice per un conto con diversi Expert Advisors, dovete formulare il vostro compito non come una ricerca del saldo di n barre fa, ma come un profitto totale degli ordini aperti; non scrivete nessun ordine aperto, aprite un ordine - iniziate ad aggiungere profitto ogni barra all'array. Significa che state cercando un'opportunità per cambiare la logica del vostro TS non in relazione al saldo, ma con il profitto dell'ordine aperto e/o il profitto dell'ordine chiuso nella storia del terminale per un periodo (giorno, ora?)

 
Igor Makanu:

non ci sono funzioni standard, così come nessuna ricerca attraverso il forum o qualsiasi altro modo

Nel tester, è possibile simulare la seguente situazione: quando si fa trading utilizzando diversi Expert Advisors, non si può sapere quale equilibrio era in quel momento. Naturalmente, si può provare a contare gli ordini che sono stati aperti, e poi cercare un momento in cui non c'erano ordini aperti nella storia del terminale ... E il risultato finale non significa che tutto sarà preso in considerazione

nel tester si può facilmente simulare questa situazione - descrivere nell'ambito globale una variabile e controllare la condizione in OnTick if(OrderTotal()==0) StartBalance = AccountBalance();

e poi, quando si aprono gli ordini nel tester, si ha il valore iniziale di balance.... Potete aggiungere ad ogni barra il valore degli ordini di profitto, potete aggiungere questi valori ad un array o ad una lista


Ma per lavorare con questo codice su un conto con diversi EA, il compito non dovrebbe essere quello di cercare il saldo n-barre fa, ma di sommare il profitto degli ordini aperti, nessun ordine aperto, ordine aperto - iniziare ad aggiungere il profitto ogni barra all'array. Significa che stai cercando un'opportunità per cambiare la logica del tuo TS non legata al saldo, ma al profitto degli ordini aperti e/o profitto degli ordini chiusi nella storia del terminale per un periodo (giorno, ora?)

Capito. Grazie per la risposta dettagliata.

 

Ciao, come posso ottenere i parametri di inputDOPO aver creato un indicatore tecnico maniglia che è stato creato utilizzando iCustom.

Per esempio

iCustom(NULL,0, "name_indicator",1,2,3) - come ottenere i parametri di input 1,2 e 3?

 
Salve, potreste dirmi come scoprire l'attuale percentuale di drawdown?
 
nalyk:
Salve, potreste dirmi come scoprire l'attuale percentuale di drawdown?

Tenere un conto del patrimonio netto

 
nalyk:
Salve, potreste dirmi come scoprire l'attuale percentuale di drawdown?
double drawdown = AccountProfit()*100/AccountBalance();
 

È possibile applicare un modello a una struttura e a una classe per dichiarare variabili di un tipo di modello al loro interno, al fine di lavorare successivamente con queste variabili e fare riferimento ad esse? Ho provato questo con una struttura.

templ(T)struct A
{
  T val;
  int ind;
};

Compila, ma non permette di assegnare un nome alla struttura.

 
Ciao, aiutami a fare quanto segue:
È necessario fare un obiettivo di profitto per ogni posizione aperta sul mercato, ma non totale, ma separato!
Esempio: EURUSD si è aperto e ha un obiettivo di profitto di 1$ nelle sue impostazioni, e non appena l'ha raggiunto, la posizione si è chiusa da sola, solo lei!
Ogni coppia di valute dovrebbe lavorare per se stessa, non per il profitto totale!

Ho trovato il codice per il profitto totale per tutte le coppie:
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает суммарный профит открытых позиций в валюте депозита |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1) {
  double p=0;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p+=OrderProfit()+OrderCommission()+OrderSwap();
          }
        }
      }
    }
  }
  return(p);
}
aiutare a rifare per ogni coppia di valute separatamente......Grazie mille!
 
ponochka:
Ciao, per favore aiutami a fare quanto segue:
È necessario fare un obiettivo di profitto per ogni posizione aperta sul mercato, ma non totale, ma separato!
Esempio: EURUSD si è aperto e ha un obiettivo di profitto di 1$ nelle sue impostazioni e non appena l'ha raggiunto, la posizione si è chiusa da sola, proprio quella!
Ogni coppia di valute dovrebbe lavorare per se stessa, non per il profitto totale!

Ho trovato il codice per il profitto totale per tutte le coppie:
aiutare a rifare per ogni coppia di valute separatamente......Grazie mille!

Passate nel primo parametro di questa funzione la stringa con la vostra coppia e conterà solo i profitti su questa coppia.

Passa nel secondo parametro di questa funzione il tipo di operazione (comprare o vendere) e conterà il profitto solo su questa operazione.

E anche il numero magico. Questa è una funzione universale.