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

 
KostelloArtua:
2011.05.16 09:06:08 Expert Moving Average New-Svecha EURUSD,M30: caricato con successo
2011.05.16 09:04:21 Expert Moving Average New-Svecha EURUSD,M30: caricato con successo
2011.05.16 08:14:25 '81415': connessione DataCenter fallita [6]


Se si esegue il terminale e poi l'EA, non appare altro nel log e l'EA mostra il lavoro...


Se i tick girano, l'icona dell'EA è "sorridente", l'EA dovrebbe fare accordi (cioè appaiono le condizioni per farlo), ma non li fa, allora è necessario il debug.

Sistemate il comando price() nel codice dell'EA, specialmente in quei posti dove viene confrontato e vedete cosa esattamente viene confrontato. Forse, avete un confronto sull'uguaglianza delle variabili di tipo doppio e il risultato è sempre falso, mentre state assumendo che le variabili siano uguali.

 

Buon pomeriggio a tutti.

Ho studiato MQL4 per circa un mese. Ho scritto un semplice Expert Advisor che compra o vende sul cambiamento delle barre MACD (posso inviare il codice in serata se ne ho bisogno). Compila senza problemi e il mio conto demo ha una faccina sorridente in alto a destra(ho abilitato il mio EA al trading nelle preferenze). Lo Strategy Tester mostra risultati per la strategia (anche se negativi, ma questo è un passo verso un ulteriore perfezionamento). Ma su un conto demo in MT4 l'Expert Advisor non apre affatto i trade. Mi sembra che il problema non sia nel programma (altrimenti perché il tester mostrerebbe i risultati?), ma da qualche parte in alcune impostazioni.

Può dirmi cosa può essere?

 
Sersad:.

Puoi dirmi cosa potrebbe esserci di sbagliato?


Quanti soldi hai sul tuo conto e quale lotto inserisci?
 
Roger:

Quanti soldi hai nel tuo conto e quale lotto inserisci?

Su un conto demo di 10.000 USD, entro con 0,1 lot (mini lot).

Se intendi la gestione del denaro, non credo che sia il caso...

 
Sersad:

Buon pomeriggio a tutti.

Ho studiato MQL4 per circa un mese. Ho scritto un semplice Expert Advisor che compra o vende sui cambiamenti della barra MACD (posso inviare il codice in serata se ne ho bisogno). Compila senza problemi e il mio conto demo ha una faccina sorridente in alto a destra (ho abilitato il mio EA al trading nelle preferenze). Lo Strategy Tester mostra risultati per la strategia (anche se negativi, ma questo è un passo verso un ulteriore perfezionamento). Ma su un conto demo in MT4 l'Expert Advisor non apre affatto i trade. Mi sembra che il problema non sia nel programma (altrimenti perché il tester mostrerebbe i risultati?), ma da qualche parte in alcune impostazioni.

Potete consigliarmi quale può essere il problema?


Senza il codice è difficile dirlo. È possibile che l'EA sia scritto per quattro cifre e il conto demo sia scritto per cinque cifre. Vedete, se impostiamo, per esempio, uno stop loss di 10 punti per l'ordine, è la stessa distanza dell'EA a cinque cifre che 1 pip su quello a quattro cifre. Se impostiamo la distanza minima consentita per impostare gli ordini stop a, diciamo, 3 punti, allora su un mercato a cinque cifre questo sarebbe di trenta punti invece di tre. Il server rifiuterà comprensibilmente il comando di impostare un ordine con uno stop di 10 punti alle cinque cifre.

Ma la ragione potrebbe essere diversa. Vedete, avete chiesto alla gente perché la loro auto non parte. Non si può dire la ragione senza aprire il cofano e ascoltare la reazione dell'auto ai tentativi di avviamento...

 


Mi dispiace, ho scritto delle sciocchezze qui, se poteste mostrarmi dove sono completamente sprovveduto.

Le pose non sembrano aprirsi affatto, non succede nulla.

Ho rimosso la divisione per zero - ancora, e nessun errore è scritto nel log.

//+------------------------------------------------------------------+
//|per avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#proprietà link "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----

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

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES );
se(OrderSymbol()==Symbol()){
if(OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
se (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, prezzo -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( );
i=OrdiniTotali() ; } } }

//----
ritorno(0);
}
//+------------------------------------------------------------------+

Cioè, si aprono due ordini pendenti, uno sopra il prezzo ad una distanza otstup=20, l'altro sotto, senza stop, e prima di aprire si controlla se non ci sono ordini di questo EA e non più di due.

 
alexr7:
Grazie mille per la risposta rapida!!!!!!!!!!!!!! Il criterio è un indicatore standard delle Bande di Bollinger con i parametri: periodo 20, spostamento 0, deviazione 2, Weighted Close(HLCC/4)!!!!!!!

Questi non sono i criteri che vi ho chiesto. Questi sono parametri di bollinger. Possono essere diversi e sono impostati nelle impostazioni...

Ti ho chiesto - come fai a determinare se la posizione è sulla linea mediana di bollinger?

 
alexr7:
Grazie mille per la risposta rapida!!!!!!!!!!!!!! Il criterio è un indicatore standard delle Bande di Bollinger con i parametri: periodo 20, spostamento 0, deviazione 2, Weighted Close(HLCC/4)!!!!!!!

La linea della media di Bollinger è iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_WEIGHTED, 1);
 
Dimka-novitsek:


Mi dispiace, ho scritto delle sciocchezze qui, se poteste mostrarmi dove sono del tutto peccaminoso.

Le pose sembrano non aprirsi affatto, non succede niente.

Ho rimosso la divisione per zero - ancora, e nessun errore non è scritto nel log.

//+------------------------------------------------------------------+
//| per avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| funzione di inizializzazione esperto |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| funzione di avvio esperto |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
if (i<2){
tiket= OrderSend(), OP_BUYSTOP, volume*A, price+otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, prezzo -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ("OP_SELLSTOP", GetLastError( ));
i=OrdersTotal( ) ; } } }

//----
return(0);
}
//+------------------------------------------------------------------+

Cioè, aprire come due ordini pendenti, uno sopra il prezzo ad una distanza otstup=20, l'altro sotto, nessun arresto, e prima di aprire controllare se l'ordine di questo EA e non più di due.

1) usare SRC

2) Il vostro primo comando è OrderSelect. Chi sceglierete prima di stabilire gli ordini?

 

Quando l'EA non inizia nulla, è solo per controllare, in modo che non si aprano nuovi corridori ad ogni tick dopo

1) usare SRC A, è una radice grazie!

Cioè se non ci sono ordini, o meno di 2, si aprono immediatamente!