[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 912

 
Dimka-novitsek:

Mi dispiace, non riesco a gestire il mio "Expert Advisor", dà cronicamente un errore 130 stop sbagliati, e non fa trading. Ho impostato diversi stop, 10-60 pips, tutti uguali.


Per cominciare, invece di uno stop e un profitto in SendOrders, mettete 0. Controllate se gli ordini sono aperti. A prima vista, i tuoi stop devono essere 10 volte più grandi, molto probabilmente hai quotazioni a cinque cifre e gli stop sono troppo vicini al prezzo aperto .
 
Dimka-novitsek:

Mi dispiace, non riesco a capire con il mio "EA", dà cronicamente errore 130 stop sbagliati, e non fa trading. Ho impostato diversi stop, 10-60 pips, tutti uguali.

Penso che dovrebbe funzionare. poiché il mio EA non funziona affatto correttamente, il mio totale è sempre 0, alternato a un errore 130.

Ho impostato extern double Lots=0.1, TakeProfit=50, stoploss=10;

Non so cosa sia sbagliato.

Aiuto!!!!!!!!!!!! Per favore!!!!!!!!!!!!


Sto bene, forse cinque cifre? stop*10 e takeloss*10

 
costy_:


Sto bene, forse cinque cifre? Fermati*10 e prendi*10

Bene, il problema con le cinque cifre e con tutti i segni è facile da risolvere.

Lo scrivi nell'Inite:

   if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнак
   if(Digits==4 || Digits==2) PointX = Point;
E, di conseguenza, dichiarare inizialmente la variabile PointX di tipo doppio. Poi, nel codice EA, sostituire Point con PointX ovunque
 
Grazie!!!Credo che sia sicuramente così!!!!
 
ivandurak:


come questo

static int KolBars; // questa variabile memorizza il numero di barre

if ( la tua condizione && Bars != KolBars)

{ // se il numero di barre è cambiato sullo schermo - l'apertura di una nuova candela è la condizione per agire

Le azioni secondo l'algoritmo sono fatte, l'apertura della posizione di chiusura, i calcoli ecc;

KolBars=Bars ; // registra il numero di barre alle quali le azioni sono completate

}

Ora i trade vengono aperti ogni ora (TF H1) con la comparsa di una nuova candela, nonostante la mia condizione di apertura.

Non so nemmeno come piazzare uno stop loss su una certa candela invece di uno stop loss.

"static int KolBars; // questa variabile memorizza il numero di barre" - dovrei specificare il numero di candele da analizzare? static int KolBars=3


Voglio costruire un EA con una condizione come "se le 3 candele precedenti erano verdi, allora apri un trade di vendita su una nuova candela, e chiudilo alla chiusura di questa candela o della prossima".

 
L'ALGORITMO GENETICO dà risultati diversi ogni volta...... COSA FARE?? provato la normalizzazione. Non ci sono slittamenti. Nella programmazione sembra non essere il primo anno......... che non capisco!!! AIUTO!!!
 
costy_:

http://forexsystems.ru/sovetniki/26492-poisk-sovetnikov-[kto-ischet-pishem-sdes%60].html

h ttp://www.forexfactory.com/showthread.php?t=168161


Grazie mille.
 
Stepan241:
L'ALGORITMO GENETICO dà risultati diversi ogni volta...... COSA FARE?? provato la normalizzazione. Non ci sono slittamenti. Nella programmazione sembra non essere il primo anno......... che non capisco!!! AIUTO!!!


Immaginate di dover implementare da soli una funzione genlock, cosa ci vorrebbe per farlo!

Quanti passaggi avrebbe dovuto fare senza un algoritmo gen. e quanti passaggi avrebbe fatto con un algoritmo gen.(si prega di indicarlo per un caso specifico).

Se i dati senza genlock non corrispondono dopo due ottimizzazioni, allora i numeri pseudo casuali devono essere stati usati da qualche parte per fare una condizione di scambio (code?).

"Niente slittamenti", quando i test e l'ottimizzazione degli slittamenti non funzionano affatto.

 

È interessante, ho letto il post di ivandurak e mi sono subito reso conto che dopo ogni tick viene attivato solo l'inizio, quindi se si apre la variabile globalmente, sembra salvare il valore.

Стало быть,где-то так.//+------------------------------------------------------------------+
//| Bollocks.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#proprietà link "http://www.metaquotes.net"
int KolBars=Bars;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{int r;
r=Bars- KolBars
//----
per (r>0)
int k;
//----
ritorno(0);
}
//+------------------------------------------------------------------+ Quindi, il compilatore non accetta categoricamente la linea int KolBars=Bars; giura 'Bars' - inizializzazione attesa C:\Program Files (x86)\Alpari ÌÒ4\experts\Áùå.mq4 (8, 13)

Amazing!!!!! Normale dichiarazione di variabile, ma non importa.

Chiederò la cosa principale - come fare il debug di un EA nel fine settimana, se i tick non vanno?????

 
artmedia70 16.10.2010 20:56

costy_:


Sto bene, forse cinque cifre? stop*10 e take*10


Bene, il problema con cinque cifre, e con tutti i segni non è difficile da risolvere.

Nell'Inite, scrivete:
if(Digits==5 || Digits==3) PointX = Point * 10; // Punto corretto per caratteri a tre e cinque cifre
if(Digits==4 || Digits==2) PointX = Point;
E, di conseguenza, dichiarate inizialmente la variabile PointX come doppia. Poi, nel codice EA ovunque, sostituite Point con PointX Ancora una volta, grazie mille!!! Anch'io ho lottato con questo per una settimana!