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

 

Aiuta a risolvere il problema. Forse ho già infastidito tutti qui, ma per favore aiutatemi. Se la bandiera della barra precedente è 1, è permesso disegnare la freccia verso il basso. Dopo che è stato disegnato, impostiamo un nuovo flag uguale a -1. Nell'altro lato al contrario. Ma cosa faccio di sbagliato. Niente frecce senza commenti. Tutte le frecce con commenti.

flag[i] = flag[i+1];             
  if (// flag[i] == 1 && 
//в вниз           
       ma13_0 > ma55_0 && macd[0] >= macd[1] && macd[1] >= macd[2] && macd[2] >= macd[3] && cci15_0 > 50 && cci170_0 > 0)
  {
       S[i] = High[i]+point*Point;                
       flag[i] = -1 ; // флаг показывает нормально пока закоментировано        
  }        
  if (// flag[i] == -1 && 
//в верх          
       ma13_0 < ma55_0 && macd[0] <= macd[1] && macd[1] <= macd[2] && macd[2] <= macd[3] && cci15_0 < 50 && cci170_0 < 0)
  {
       B[i] = Low[i]-point*Point;                
       flag[i] = 1 ;//флаг показывает нормально пока закоментировано         
   }
 
granit77:
Non lo so. Sergeev lo sa, ha detto che sembra essere giusto. Vorrei anche vedere come scriverlo correttamente.
L'ho solo corretto un po', in modo che si vedesse qualcosa.
- Ho messo l'indicatore in una finestra separata, poi si può rimettere

- macd[] array era sospeso in aria, l'ha reso un indicatore, aumentando la precisione
- bloccato la vostra condizione complessa per l'apertura, mettetene una semplice per la regolazione
- ha cambiato la condizione per la bandiera, almeno funziona.

Poi si possono introdurre gradualmente le condizioni, si vedrà subito dov'è il bug.

Grazie. Darò un'occhiata. Mentre scrivevo il post precedente tu hai pubblicato il tuo.
 
100yan:

AIUTO! Per favore ditemi, se chiudo parte di una posizione (ad esempio ordine per 1 lotto, e chiudo 0,5 lotti) OrderClose ticket dovrebbe cambiare? Il mio tester dice che lo fa... Come evitarlo? Qui sotto c'è un pezzo di codice di chiusura...

Non c'è modo di evitarlo. È il DC che cambia il biglietto. Stai essenzialmente riaprendo con un altro volume, da cui il nuovo biglietto. Perciò, tenete il vostro registro degli ordini e dopo la chiusura parziale di una posizione, ricordatevi del suo nuovo ticket per un ulteriore lavoro. Puoi anche fornire una sorta di identificazione delle posizioni parzialmente chiuse per un corretto monitoraggio ulteriore di queste posizioni da parte del tuo Expert Advisor.
 
artmedia70:
Non c'è modo di evitarlo. Questo è il DC che cambia il biglietto. Stai essenzialmente riaprendo una posizione con un volume diverso, da cui il nuovo biglietto. Perciò, tenete il vostro registro degli ordini e dopo la chiusura parziale di una posizione, memorizzate il suo nuovo ticket per il lavoro successivo. È anche possibile fornire una sorta di identificazione delle posizioni parzialmente chiuse per un corretto monitoraggio ulteriore da parte dell'Expert Advisor.

Grazie! Il MagicNumber cambia?
 
gince:
Ha fatto un disegno temporaneo del buffer flag[] - è vuoto, perché? Dov'è il mio errore?

il vostro errore è che flag[i+1] non è inizializzato.

quindi il confronto flag[i]==1 e flag[i]==-1 non verrà mai eseguito!

 
100yan:

Grazie! Il MagicNumber cambia?
no
 
100yan:

Grazie! Il MagicNumber cambia?
Il MagicNumber non cambia in questo caso, a meno che il codice EA non lo preveda.
 
DhP:
Il MagicNumber non cambia in questo caso, a meno che ciò non sia previsto nel codice EA.
è possibile fare questo ???? per favore mostratemi come può essere fatto
 
sergeev:
Sì??? e questo può essere previsto ???? per favore mostra come può essere fatto
Quando una posizione è parzialmente chiusa, è possibile cambiare il magik. Sono sicuro che puoi scrivere questo facilmente.
 
sergeev:

il vostro errore è che flag[i+1] non è inizializzato.

quindi il confronto flag[i]==1 e flag[i]==-1 non verrà mai eseguito!

La mia comprensione è che non ho inizializzato l'impostazione di flag[i+1] . Se sì, dove e come farlo?

Se imposto 1, allora quando avvio l'indicatore, esso (l'indicatore) aspetterà il cambiamento.

flag[i+1]= 1;//начальная установка

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 ;}
    }
}    
Motivazione: