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

 
buroff:

Ho trovato l'indicatore "ForexSession", ma i parametri temporali dovevano essere cambiati. LocalGMT=3 - Mosca, BrokerGMT=0 - Londra, e ho cambiato anche gli orari di inizio e fine delle sessioni.

Ma niente funziona con l'America - ho aggiunto il blocco "void ShowSessionBroker()" - per aggiungere 30 minuti a New York, dopo la compilazione appare un errore, e non ho abbastanza cervello per sistemarlo.

Brava gente, potete dirmi cosa ho fatto di sbagliato e come risolverlo?

L'avevo compilato normalmente.
 
Sergey_Rogozin:


Sps, perché c'è un 1 alla fine ma uno 0?? Se il valore RSI deve essere confrontato con quello precedente, deve essere scritto così?
double RSI = iRSI(NULL,0,14,PRICE_CLOSE,2);
 
Vovo4ka:

Opps, perché c'è un 1 e uno 0 alla fine? Se vuoi confrontare il valore di RSI con quello precedente, devi scriverlo così?

Siete liberi di impostare il numero di qualsiasi barra. L'unica cosa che conta è su quale barra vuoi il doppio valore RSI.

Per il confronto, naturalmente, dovete avere almeno due valori, cioè valori su barre diverse.

 
Sergey_Rogozin:
Siete liberi di impostare il numero di qualsiasi barra. L'unica cosa che conta è su quale barra vuoi il doppio valore RSI.

Per esempio, se voglio confrontare l'attuale valore RSI con il prezzo di chiusura precedente, allora posso fare così...
double RSI1 = iRSI(NULL,0,14,PRICE_CLOSE,1);
double RSI2 = iRSI(NULL,0,14,PRICE_CLOSE,2);
e poi confrontiamo... giusto?
 
Vovo4ka:

Diciamo che voglio confrontare l'attuale valore RSI con il precedente prezzo di chiusura, allora va così... e poi confrontiamo... giusto?
Esattamente giusto. Con una correzione: la barra attuale è zero.
 
Sergey_Rogozin:
È possibile impostare il numero di qualsiasi barra. Importa solo quale barra vuoi ottenere il valore del doppio RSI.


Posso anche dirvi come fare in modo che il segnale apra un solo trade... perché apre trade su tutte le barre... ((((

Se il segnale si aprisse solo un affare.... alla ripetizione un altro e non importa se il precedente si è chiuso....

qualcosa del genere...))

 

Devi controllare se ci sono ordini già aperti prima di aprire un ordine.

Avrete bisogno di una funzione piccola/non complessa,

che vi permetterà o meno di entrare nel mercato se c'è un segnale per farlo.

 
Sergey_Rogozin:

Devi controllare se ci sono ordini già aperti prima di aprire un ordine.

Avrete bisogno di una funzione piccola/non complicata,

che vi permetterà o meno di entrare nel mercato anche se c'è un segnale per farlo.


Mi puoi dire per caso..... per inserire .... altrimenti non riesco a valutare bene il consigliere...((
 
Vovo4ka:

Potresti suggerire.....? di mettere .... altrimenti non posso davvero valutare l'EA in questo modo...((
La funzione si presenta così
  bool Exist(){
     for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
        if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
          if(OrderMagicNumber()==Magic){
            if(OrderSymbol()==Symbol()){
              if(OrderType()<2)return(true);
      } } } }        
  return(false);} 

Cioè, se ci sono posizioni aperte, la funzione le rileverà e restituirà true.

Il vostro compito è di mettere qualcosa come questo prima di OrderSend(.......):

if(!Exist() && Signal)OrderSend(Symbol()........);
где Signal - Ваш сигнал на вход в рынок.
 

Potete dirmi come controllare la validità di un ordine? Per esempio, ho un ordine in sospeso e ho bisogno di controllare se ha innescato un ordine stop.


bool check=OrderChek(ticket);

Comment("L'ordine con il biglietto ", biglietto, "non esiste (attivato)");


Non riesco a trovare come farlo.

Motivazione: