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

 
Zhunko:

Una descrizione di cosa? Cosa intende per descrizione? È tutto lì.

Descrizione delle funzioni nel file di intestazione. Esempi di utilizzo nello script di test.


Scusa, l'ho visto. L'ho visto.
 

Salve. Aiutami a correggere il codice di un EA. Il problema nel codice è il seguente: se il prezzo > o = livelli prescritti allora si apre un trade. Il prezzo può essere quanto vuole > questi livelli, rispettivamente, l'EA apre un mucchio di trade.

Voglio rimuovere il simbolo">"dal codice e lasciare solo"=". io stesso rimuovo il simbolo ">" ma ottengo un sacco di errori durante la compilazione.AIUTATEMI.

 
// < 0 - Dn
// > 0 - Up
int Signal()
{
double RSI = iRSI(NULL,15,RSIperiod,RSI_price,SignalBar);
double Stoch = iStochastic(NULL,15,Stoch_K,Stoch_D,Stoch_slowing,Stoch_method,Stoch_price,Stoch_mode,SignalBar);
double CCI = iCCI(NULL,15,CCI_period,CCI_price,SignalBar);

double MA2 = iMA(NULL,15,ma2_period,ma2_shift,ma2_method,ma2_price,SignalBar);
double IchiA = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 3, SignalBar);
double IchiB = iIchimoku(NULL, 15, tenkan, kijun, senkou_span_b, 4, SignalBar); 

    if(GO && SignalType_1 && RSI >= 65 && Stoch >= 80 && CCI >= 100) {GO=false; return(+1);}//запретить повторный вход (+1);
    if(GO && SignalType_2 && Bid >= MA2 && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход return(+1);
    if(GO && SignalType_3 && Bid >= IchiA && RSI >= 65 && Stoch >= 80 && CCI>=100) {GO=false; return(+1);}//запретить повторный вход (+1);
    
   
    
    if(GO && SignalType_1 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_2 && Ask <= MA2 && RSI <= 35 && Stoch <= 20 && CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    if(GO && SignalType_3 && Ask <= IchiB && RSI <= 35 && Stoch <= 20&& CCI <= -100) {GO=false; return(-1);}//запретить повторный вход (-1);
    
    if(OrdersTotal()==0)GO=true;
    
    return(0);
}


Questa è una parte del codice, se avete bisogno di tutto il codice, lo posterò.

Grazie in anticipo.
 

Metti una linea prima del controllo delle condizioni

se(OrdiniTotali()>0)ritorno(0);

Ho guardato di nuovo e ho capito che il codice non è tuo e non hai idea di come sistemarlo. Hai già tutto nel tuo codice, cerca il posto dove piazza gli ordini e perché ignora la variabile GO.

 
Roger:

Metti una linea prima del controllo delle condizioni

se(OrdiniTotali()>0)ritorno(0);

Ho guardato di nuovo e ho capito che il codice non è tuo e non hai idea di come sistemarlo. Hai già tutto nel tuo codice, cerca il posto dove piazza gli ordini e perché ignora la variabile GO.

Il codice non è mio ma è stato scritto per me secondo il mio compito tecnico e non ho idea di come sistemarlo, ecco perché l'ho affrontato. Grazie per la risposta
 

Buon pomeriggio.

Puoi dirmi per favore (in un messaggio privato) dove sono le citazioni nei fine settimana?

 

Ciao a tutti, ho bisogno di aiuto. Non so dove sia l'errore!

Il punto è questo. Impostiamo il punto di riferimento nel tempo, diciamo 29/10/2012 00:00. Crea una matrice e mettici dentro i valori dal punto di partenza al momento presente. Poi controlla le condizioni di deviazione dei prezzi che ho impostato. Se raggiungiamo la deviazione ==10. Visualizziamo un messaggio e spostiamo il punto da quello che abbiamo impostato prima a 2 giorni avanti. E ripetere la procedura. Il problema è che il seguente array dovrebbe essere costantemente rifornito, diciamo che da un punto 29/10/2012 00:00 non abbiamo abbastanza valori e ogni nuova barra di minuti formata dovrebbe essere messa in esso e controllata e il punto di riferimento non viene spostato finché le condizioni coincidono ==10 volte. Ma per qualche motivo ad ogni tick, ricomincia a contare i valori dal punto di partenza!!!!

Aiuta a risolvere il problema! GRAZIE A TUTTI PER IL VOSTRO AIUTO!!!

//-----------------------------------------------------------------------------------------------------------------------------------
datetime Tochka_History = D'2012.10.10 17:30';           
double d[];                                            
double a;                                                 
int i;                                                   
int r=0;                                                 
int j=0;                                                  
int c=0;                                                    
datetime time;                                              
int bars;                                                   
string l;
//-----------------------------------------------------------------------------------------------------------------------------------
int start(){
if(j==0){
l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES);
Alert("Точка отсчета - ",l,"; Счетчик c - ",c);                                                                          
if(TimeCurrent()>=Tochka_History){                                                                                   
bars=iBarShift(NULL,PERIOD_M1,Tochka_History,false);                                                                 
time=iTime(NULL,PERIOD_M1,i);                                                                                                                                            
ArrayResize(d,bars);                                                                                                 
for(i=bars;i>0;i--) d[i]=(iHigh(NULL,PERIOD_M1,i)+iLow(NULL,PERIOD_M1,i))/2;                                        
for(i=bars;i>0;i--) Uslovie();}}}                                                                                     
//-----------------------------------------------------------------------------------------------------------------------------------
void Uslovie(){
if(r==0){a=d[i];r=1;}
if(a+10*Point<=d[i] && r==1){r=0; c=c+1; Alert("Счетчик c - ",c);}
if(c==10){Alert("Значение С достигло 10"); j=1; Smeshenie();}}
//-----------------------------------------------------------------------------------------------------------------------------------
void Smeshenie(){
Tochka_History=Tochka_History+2*24*60*60;
l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES);
Alert("Новая точка отсчета времени - ",l);
if(TimeDayOfWeek(Tochka_History)==6||TimeDayOfWeek(Tochka_History)==0){
Tochka_History=Tochka_History+1*24*60*60;
l=TimeToStr(Tochka_History,TIME_DATE|TIME_MINUTES);
Alert("Новая точка отсчета времени, если выпали выходные - ",l);} j=0;}
//-----------------------------------------------------------------------------------------------------------------------------------
 
merkulov.artem:

Ciao a tutti, ho bisogno di aiuto. Non so dove sia l'errore!

Il punto è questo. Impostiamo il punto di riferimento nel tempo, diciamo 29/10/2012 00:00. Crea una matrice e mettici dentro i valori dal punto di partenza al momento presente. Poi controlla le condizioni di deviazione dei prezzi che ho impostato. Se raggiungiamo la deviazione ==10. Visualizziamo un messaggio e spostiamo il punto da quello che abbiamo impostato prima a 2 giorni avanti. E ripetere la procedura. Il problema è che il seguente array dovrebbe essere costantemente rifornito, diciamo che da un punto 29/10/2012 00:00 non abbiamo abbastanza valori e ogni nuova barra di minuti formata dovrebbe essere messa in esso e controllata e il punto di riferimento non viene spostato finché le condizioni coincidono ==10 volte. Ma per qualche motivo inizia a contare di nuovo i valori dal punto di partenza ad ogni tick!!!

Aiutami a risolvere questo problema! GRAZIE A TUTTI PER IL VOSTRO AIUTO!

La terza volta che vedo la tua richiesta e nessuno reagisce, perché pensi? Probabilmente la gente non capisce cosa si vuole da loro.

Se raggiungiamo deviazioni ==10. Visualizziamo un messaggio e spostiamo il punto da quello che abbiamo impostato prima di 2 giorni.....Ma per qualche motivo inizia a ricalcolare i valori dal punto di partenza ad ogni tick!!!

Questo perché il tuo codice non controlla da dove parte. Quindi inizia ogni volta dal punto di partenza. Controlla con la tua stampante se c'è una deviazione di 10 e se sposta davvero il punto di 2 giorni. Se è spostato di 10 e il waypoint è spostato di 2 giorni, allora prima di inserire il prossimo segno di spunta è necessario controllare se è veramente necessario inserire il punto di partenza o se è già inserito.

Lei ha un modo complicato di arrivare alla verità. Sono sicuro che se formuli il problema stesso, ti dirà un modo più semplice per risolverlo.

P.S.

Di tutte le soluzioni a un problema, la più facile è sempre la più difficile da trovare, perché per trovarla bisogna riciclare e setacciare un mucchio di spazzatura. Quindi, sentitevi liberi di formulare - soluzione semplice non significa soluzione rapida. Forse le persone qui ti salveranno più di un giorno della tua vita.

 

Buona giornata!!! Una domanda super fantastica. Come faccio a fermare il tester quando raggiunge il posto giusto nel codice? Non vedo niente del genere nell'aiuto. Non può essere affatto così, e la funzione sarebbe preziosa!

2. Il comportamento della funzione iCustom. In realtà, la funzione produce sempre una stampa -1 (tranne quando un buffer angoli dello zigzag). Ma nel tester tutti vedono 0. Perché una tale differenza?

double strela1 = iCustom(NULL, taymfreym, "индикатор", 2, 1);
            double strela2 = iCustom(NULL, taymfreym, "индикатор", 3, 1);
            
            int BUY=0,SELL=0;int ticket; 
            Print (  " strela1 " , strela1 , "   strela2  " , strela2 );


 
Dimka-novitsek:
Buona giornata!!! Una domanda super fantastica. Come faccio a fermare il tester quando raggiunge il posto giusto nel codice? Non vedo niente del genere nell'aiuto. Non può essere affatto così, e la funzione sarebbe preziosa!

inviargli una pressione del pulsante "Pausa/Interruzione

cerca un articolo su come inviarlo.

 
Grazie! Lo cercherò!
Motivazione: