[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 392

 

Ciao a tutti, credo di aver scritto nel posto giusto. Ho un grande desiderio di imparare il linguaggio di programmazione mql4 per iniziare con gli script, poi indicatori e EAs, in particolare, ora ho impostato un compito di scrivere un EA me stesso per il commercio utilizzando una delle tattiche. (Ho letto sul forum che iniziano con gli script). Sono un esperto di codifica, conosco poco pascal e delphi e ho studiato c++, ho letto mql ma penso che non sia così diverso. Ho bisogno di aiuto per scrivere programmi giusti o sbagliati, ottimizzazione del codice, ecc. Chi può aiutare?

Grazie in anticipo!!!

 

Si prega di consigliare su esempio, ecco un semplice codice, advisor apre BAY con stop e profitto, e mette ordine pendente. Cosa devo scrivere nel codice, in modo che quando raggiunge un profitto, l'ordine pendente viene cancellato e tutto inizia dall'inizio..... e quando raggiunge uno stop, per esempio, Alert ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#proprietà copyright ""
#proprietà link ""
extern double Lot = 0,01;
extern int TakeProfit = 200;
extern int StopLoss = 200;
extern double Step = 0,0020;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{
se (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==falso)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Green); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,Red); }
}
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+

 
MIR-ASOV:

Si prega di consigliare l'esempio, ecco un semplice codice, l'EA apre BAY con uno stop e profitto, e mette ordine pendente. Che cosa ho bisogno di scrivere nel codice, in modo che quando si ottiene un profitto in sospeso rimosso e tutto iniziato over..... e quando si ottiene una fermata, per esempio, era Alert ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#proprietà copyright ""
#proprietà link ""
extern double Lot = 0,01;
extern int TakeProfit = 200;
extern int StopLoss = 200;
extern double Step = 0,0020;
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
{
se (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==falso)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Green); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,Red); }
}
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+

Cercate nei libri di testo un algoritmo per contabilizzare gli ordini. Poi collega la logica a tutto questo, e il risultato sarà ovvio!

Inoltre, lavorate sulla sintassi del codice. Un sacco di parentesi graffe...


fricchettone:

Ciao a tutti, credo di aver scritto nel posto giusto. Ho un grande desiderio di imparare il linguaggio di programmazione mql4 per iniziare con gli script, poi indicatori, e EAs, in particolare, ora ho impostato un compito di scrivere un EA me stesso al commercio da una delle tattiche. (Ho letto sul forum che iniziano con degli script. Ho poca dimestichezza con la programmazione, studi Pascal, Delphi e C++, ho letto mql ma penso che non siano molto diversi. Ho bisogno di qualche consiglio su come scrivere programmi giusti o sbagliati, ottimizzazione del codice, ecc. Chi può aiutare?

Grazie in anticipo!!!

Quindi scrivi qui, possiamo aiutarti. O hai bisogno di un tutor a domicilio? :)))
 

Come eseguire una tale azione in un EA:

Tutte queste condizioni possono non seguire una dopo l'altra (può essere dopo un'ora o due o tre), quindi dobbiamo fare in modo che non appena l'indicatore raggiunge 1.0000, questa condizione non sia più controllata ad ogni tick, e aspettare fino a che una barra si chiuda con una caduta, e dopo che queste 2 condizioni non siano controllate ad ogni tick, e aspettare fino a che l'indicatore raggiunga 0.9980 o meno. Non appena tutte le condizioni sono soddisfatte, apriamo un ordine a mercato per vendere 0,1 lotti con uno stop loss di 100p e un take profit di 400p.

Qualcuno può aiutare? Forse qualcuno ha un esempio pronto o mi dà un link?

 
kolyango:

Come eseguire una tale azione in un EA:

Tutte queste condizioni possono non seguire una dopo l'altra (può essere dopo un'ora o due o tre), quindi dobbiamo fare in modo che non appena l'indicatore raggiunge 1.0000, questa condizione non sia più controllata ad ogni tick, e aspettare fino a che una barra si chiuda con una caduta, e dopo che queste 2 condizioni non siano controllate ad ogni tick, e aspettare fino a che l'indicatore raggiunga 0.9980 o meno. Non appena tutte le condizioni sono soddisfatte, apriamo un ordine a mercato per vendere 0,1 lotti con uno stop loss di 100p e un take profit di 400p.

Qualcuno può aiutare? Forse qualcuno ha un esempio pronto o mi dà un link?

Quando si verifica un evento, metti una condizione booleana e un tempo di scadenza.
 
kolyango:

Come eseguire una tale azione in un EA:

Tutte queste condizioni possono non seguire una dopo l'altra (può essere in un'ora o due o tre), quindi dobbiamo fare appena l'indicatore raggiunge 1.0000, questa condizione non è più controllata ad ogni tick, e aspettare che una barra si chiuda con caduta, e dopo che queste 2 condizioni non sono controllate ad ogni tick, e aspettare che l'indicatore raggiunga 0.9980. Una volta che tutte le condizioni sono soddisfatte aprire un ordine di mercato per vendere 0.1 lotto con uno stop loss di 100p e take profit di 400p.

Qualcuno può aiutare? Forse qualcuno ha un esempio pronto o mi dà un link?


Ecco un articolo per aiutare - guarda l'analogia lì...

Nel trailer - l'inclusione dell'esecuzione di questi criteri di trading secondo questo articolo, scritto secondo il tutorial, vedi qui.

Hai tutto allo stesso modo...

File:
criterion.mqh  12 kb
 
kolyango:

Come eseguire una tale azione in un EA:

Tutte queste condizioni possono non seguire una dopo l'altra (può essere in un'ora o due o tre), quindi dobbiamo fare appena l'indicatore raggiunge 1.0000, questa condizione non è più controllata ad ogni tick, e aspettare che una barra si chiuda con caduta, e dopo che queste 2 condizioni non sono controllate ad ogni tick, e aspettare che l'indicatore raggiunga 0.9980. Una volta che tutte le condizioni sono soddisfatte aprire un ordine di mercato per vendere 0.1 lotto con uno stop loss di 100p e take profit di 400p.

Qualcuno può aiutare? Forse qualcuno ha un esempio pronto o mi dà un link?

È così semplice. Usiamo le bandiere come semaforo. Ci saranno tre blocchi di codice, ognuno dei quali sarà eseguito solo se il precedente è già stato eseguito.

Inizialmente tutte le bandiere ==false.

Non appena la prima condizione è soddisfatta, impostiamo il primo flag=true; ora viene eseguito il secondo blocco di codice. Non appena la sua condizione è soddisfatta, imposta il secondo flag=true;
Ora viene eseguito il terzo blocco di codice. Non appena la sua condizione è soddisfatta, imposta il terzo flag=true; e così via.

 
artmedia70:

È così semplice. Usiamo le bandiere come un semaforo. Ci saranno tre blocchi di codice, ognuno dei quali sarà eseguito solo se il precedente è già stato eseguito.

Inizialmente tutte le bandiere ==false.

Appena il primo è stato eseguito, mettiamo il primo flag=true; ora viene eseguito il secondo blocco di codice. Non appena la sua condizione è soddisfatta, imposta il secondo flag=true;
Ora viene eseguito il terzo blocco di codice. Non appena la sua condizione è soddisfatta, imposta il terzo flag=true; e così via.



E quando ammainare le bandiere non ha scritto
 

Puoi dirmi quale font usa il terminale? Vorrei che i miei commenti fossero uguali a quelli standard

if(spread >= 20)
       spreadColor = Red;
  else
       spreadColor = White;
  ObjectSetText("Spread", "Spread " + Symbol() + ": " + DoubleToStr(spread, 0), 8, "Tahoma Bold"/*"Calibri"*/, spreadColor);//"Webdings"
 

Ragazzi, quando ottimizzo su un terminale, inizio un test su un altro terminale e l'ultimo terminale si blocca con questo errore... qualcuno sa qual è la possibile ragione? Prima, quando avviavo questo terminale - chiedeva un aggiornamento alla versione 409, lo aggiornavo, si riavviava e continuava a chiedere lo stesso aggiornamento... ho - annullato, chiuso, poi l'ho eseguito io stesso... continuava a chiedere questo aggiornamento.

Non ho ancora controllato il nuovo terminale... Il carico della CPU è sempre al 100%... Esecuzione del test in modalità di visualizzazione sul terzo terminale - testato bene...


Motivazione: