[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 68

 
sergeev:

a destra salta fuori.

Dovete prendere Bid e Ask dalla funzione MarketInfo

come - ask= MarketInfo(OrderSymbol(), MODE_ASK);

e non dimenticare di normalizzare
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS));

 

Per favore, ditemi che state facendo il processo di normalizzazione,

Cosa fa? Spiega se non ti dispiace.

 
iv_danko:

Ditemi per favore, qui state facendo il processo di normalizzazione,

E a cosa serve? Spiega se non ti dispiace.


doppio NormalizeDouble( valore doppio, int cifre)

Arrotondamento di un numero in virgola mobile alla precisione specificata.
I valori di StopLoss e TakeProfit calcolati, così come i prezzi di apertura degli ordini in sospeso devono essere normalizzati alla precisione, il cui valore è memorizzato nella variabile predefinita Digits.

Un errore può verificarsi quando i prezzi non sono normalizzati.

 
Vinin:

Mi dispiace. Completamente dimenticato.

Grazie per l'indicatore, ma non è la stessa cosa. La condizione (ma13_0-ma55_0)*(ma13_1-ma55_1)<0 mostra se c'è stato o meno un crossover tra i flap (ho fatto un indicatore separato per questo). Avete degli ingressi per attraversamento, e non è proprio la stessa cosa. Voglio filtrare le frecce in modo che venga mostrata solo la prima freccia dopo aver cambiato la direzione.

Le frecce del tuo indicatore sono grandi. Quelli piccoli sono di un indicatore che deve essere messo a punto.

 
gince:


Aggiungo. Non è esattamente una compravendita. È anche un calcolo del prezzo degli ordini di stop.

 
iv_danko:

Per favore, ditemi che state facendo il processo di normalizzazione,

Cosa fa? Spiega se non ti dispiace.

 

Perché questo controllo non funziona?

for(int i=limit-1;i>=0;i--){ 
   flag[i] == flag[i+1];   
   if ( flag[i] == 1  &&   
        условие продажи){              
       Продажа[i] = High[i]+point*Point; 
       flag[i] == -1 ;
    }                     
    if (flag[i] == - 1  &&     условие покупки){          
              Покупка[i] = Low[i]-point*Point; 
              flag[i] == 1 ;}
    }
}    
 
Farei un rendering temporaneo del buffer flag[] e vedrei cosa c'è dentro. A colpo d'occhio tutti i valori in esso saranno uguali.
 
gince:

Perché questo controllo non funziona?

Penso che abbiano fatto la cosa giusta.
 
granit77:
Farei un rendering temporaneo del buffer flag[] e vedrei cosa c'è dentro. A colpo d'occhio, tutti i valori in esso sarebbero uguali.
Ha fatto un rendering temporaneo del buffer flag[] - è vuoto, perché? Dov'è il mio errore?
File:
cross1_2.mq4  5 kb
Motivazione: