Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 414

 
bergkamp.:

dopo l'uscita dall'avvio continuerà a fare trading dopo che il segnale è cambiato?

Se la condizione specificata viene cambiata, continua.

bergkamp.:

e come è diversa l'azione? questa e questa

(senza entrare nei dettagli) niente.

 
bergkamp.:

dopo l'uscita dall'avvio continuerà a fare trading dopo che il segnale è cambiato?

e come è diversa l'azione? questo e quello


Nel secondo caso la funzione start() restituisce zero, nel primo non viene restituito nulla.
 
khorosh:

Nel secondo caso, la funzione start() restituisce zero; nel primo caso, non restituisce nulla.

ops, ops. Un grande equivoco, che porta a trovare errori dove non ce ne sono.

La funzione restituisce un numero indefinito, potrebbe anche restituire 0, anche se non è sicuro.

Quindi non confondete l'uomo, altrimenti si metterà nei guai e non sarà contento.

 
bergkamp.:

dopo l'uscita dall'avvio continuerà a fare trading dopo che il segnale è cambiato?

e come è diversa l'azione? questo e quello

Non è diverso per una chiamata di sistema (per tick). È importante chiamare start() da solo. E questo se il valore di ritorno è importante.
 
sergeev:

Un grande equivoco che porta a trovare errori dove non ce ne sono.

La funzione restituisce un numero indefinito, potrebbe anche restituire 0, anche se non è sicuro.

Quindi non confondere l'uomo, altrimenti si farà male e non sarà felice.

Probabilmente il valore della funzione "start" non è mai stato utilizzato. L'ho pensato perché di solito quello che c'è tra parentesi in return() è il valore di ritorno della funzione, e se non c'è nessun valore, allora niente. Ma "start" non è una funzione ordinaria, ma una funzione speciale, forse è per questo che ci possono essere delle deviazioni.
 
khorosh:
return() tra parentesi è il valore di ritorno della funzione e niente se non c'è nessun valore.

No e no!

non insegnare ai neofiti cose senza senso.


int F1() { return; }

int F2() { }

int a=F1(), b=F2();

Stampa(a);

Stampa(b);


-----

Grazie a Dio per aver aggiunto la modalità rigorosa

 
  1. Ciao, consigliare come implementare una condizione nell'indicatore di correlazione che visualizza nella finestra principale 2 coppie di valute nelle linee da una certa data nel tempo, in modo che la seconda coppia correlata continuerà ad essere visualizzato sul grafico in tempo reale, e non solo fino a quando l'indicatore è collegato al grafico, per esempio, nella finestra principale dell'euro per continuare a visualizzare il pounddollar. La costruzione standard dell'indicatore (a barre) non è adatta a causa della costante rivalutazione.
  2. #property indicator_chart_window
    #property indicator_buffers 2


    extern datetime startDate = 1389107200;
    extern int period = 1;
    extern int priceType = MODE_CLOSE;
    extern int shift = 0;
    extern int mode = MODE_EMA;
    extern string addSymbol = "GBPUSD";
    extern color curSymbolColor = Red;
    extern color addSymbolColor = Aqua;

    int drawBars = 0;
    int addBars = 100;
    double a[], b[], c[];

    // ----
    int init(){
    IndicatorBuffers(3);
    SetIndexBuffer(0,a);
    SetIndexBuffer(1,b);
    SetIndexBuffer(2,c);
    SetIndexStyle(0,DRAW_LINE,EMPTY,EMPTY,curSymbolColor);
    SetIndexStyle(1,DRAW_LINE,EMPTY,EMPTY,addSymbolColor);
    drawBars = iBarShift(NULL,0,startDate);
    if (iClose(addSymbol,0,0) == 0) addSymbol = "";
    drawBars += period + addBars;
    }

    // ----
    int start(){
    int bars = 0, i = 0, si = 0, pos = 0;
    static double delta = 0;

    bars = IndicatorCounted();
    if (bars < 0) return(-1);
    i = Bars - bars - 1;

    if (i > drawBars) i = drawBars;
    si = i;

    while (i > 0){
    if (i < drawBars - period - addBars){
    a[i] = iMA(NULL,0,period,shift,mode,priceType,i);
    }
    pos = iBarShift(addSymbol,0,Time[i]);
    c[i] = price(addSymbol,0,priceType,pos);
    i--;
    }
    si -= period + addBars + 1;
    i = si;

    while(i > 0){
    b[i] = iMAOnArray(c,0,period,shift,mode,i);
    if (i == si){
    delta = b[i] - a[i];
    }
    b[i] -= delta;
    i--;
    }
    }

    //----
    double price(string symb,int tf, int type, int i){
    double p = 0;
    if (symb=="0") symb = Symbol();

    switch(type){
    case MODE_OPEN :
    p = iOpen(symb,tf,i); break;
    case MODE_LOW :
    p = iLow(symb,tf,i); break;
    case MODE_HIGH :
    p = iHigh(symb,tf,i); break;
    case MODE_CLOSE :
    p = iClose(symb,tf,i); break;
    }
    return(p);
    }
 
È semplicemente possibile che l'indicatore si aggiorni automaticamente, per esempio ogni 2-3 minuti.
 

Per favore aiutatemi, non so in quale argomento scrivere.

Ho un Expert Advisor, ho bisogno di aggiungere ad esso la capacità di moltiplicare il prossimo lotto vinto per 2:

1. Rischio

2. Profitto

3. Stoploss

4. StartTime

5. Dimensione del lotto

6. Se il lotto è chiuso positivamente

7. Numero di lotti successivi moltiplicati (1, 2, 3 o 4)

7.1 Lotto vinto moltiplicato (ogni 2, per X)

7.2 Il lotto vinto moltiplicato (ogni 3 per X)

7.3 Un lotto vinto moltiplicato (ogni 4 per X) 7.4 Un lotto vinto moltiplicato (ogni 3 per X) 7.5 Un lotto vinto moltiplicato (ogni 4 per X) 7.6.

7.4 Moltiplicato il lotto vinto (ogni 5 per X)

X - valore modificabile (se X=0 allora il lotto non viene moltiplicato)

Esempio 1:

Se la puntata 0,03 = giocata in +, la prossima puntata è 0,06

Se la puntata 0,06 = giocata in +, la prossima puntata è 0,09

Se la scommessa 0,09 = non ha giocato nel +, allora la prossima scommessa è standard 0,03

Esempio 2:

Se la puntata 0,03 = giocata in +, la prossima puntata è 0,06

Se la puntata 0,06 = non ha giocato in +, la prossima puntata è 0,03

Se la puntata 0,03 = giocata in +, allora la prossima puntata standard 0,06

ecc.

Ecco l'EA stesso. Vi sarei molto grato per il vostro aiuto.

File:
 
Ciao!
C'è una funzione nella funzione "Kim" che calcola il margine di profitto dell'ultimo ordine aperto?

Non l'ho trovato, ora sono perplesso su una funzione fatta in casa per calcolare il margine di profitto dell'ultimo ordine aperto.