Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 756
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sono abituato al mio sistema di archiviazione.
Buon pomeriggio.
Ho scritto un programma di esercizi. Non funziona per qualche motivo.
L'ho testato nello strategy tester tra il 29 settembre e il 15 ottobre.
Il programma dovrebbe funzionare così: faccio un acquisto. Quando il prezzo scende di 0,010 dovrebbe vendere con una perdita.
Si verifica un acquisto. Non c'è nessuna vendita. Inizio la visualizzazione e vedo che il prezzo non è solo 0,010 più basso, ma molto più alto. Strano.
// -------- variabili --- Iniziare -----
extern double L1=0.01; // dimensione del lotto per l'acquisto
extern double L1n=0.01; // dimensione del lotto per l'acquisto (lotto normalizzato)
extern double AktualAsk=0.0; // prezzo di offerta corrente
extern double AktualBid=0.0; // prezzo di vendita effettivo
extern int int ticketlackmus=1; // indicatore di apertura dell'ordine con successo.
extern int int ticket1=0; // biglietto
extern bool PozOtk1=true;
// -------- variabili --- Fine -----
int init()
{
ritorno(0);
}
int start()
{
se (PozOtk1==true)
{
//posizione aperta
ticketlackmus=1;
mentre (ticketlackmus>0)
{
Avviso (" Aprire la prima posizione ");
RefreshRates();// Aggiorna i dati
AktualAsk=NormalizeDouble(Ask,Digits); //per il prezzo
L1n=NormalizeDouble(L1,2); //per il lotto.
ticket1=OrderSend ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);
se (ticket1>0) ticketlackmus=-1;
{
Alert (" ORDER OPEN ", ticket1, ", ticketlackmus);
}
}
PozOtk1=falso;
Alert (" PozOtk1 ", PozOtk1);
}
RefreshRates();// RefreshRates()
AktualBid=NormalizeDouble(Bid,Digits); //per il prezzo
if (AktualBid<=AktualAsk-0.010 && PozOtk1==false)
{
RefreshRates(); // Aggiorna i dati
OrderSelect(ticket1, SELECT_BY_TICKET;)
L1n=NormalizeDouble(L1,2); //per il lotto
OrderClose (ticket1, L1n, AktualBid, 5);
PozOtk1=true;
}
ritorno(0);
}
int deinit()
{
ritorno(0);
}
Ozero.
Si prega di utilizzare il pulsante magico SRC quando si inserisce il codice:
Inserire correttamente il codice nel forum
Se una posizione è aperta su un certo simbolo (in questo caso - "GBPUSD"), allora è consigliabile prendere tutti i dati su questo simbolo attraverso marketinfo, cioè non solo AktualAsk=NormalizeDouble(Ask,Digits ); aktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
E così qualsiasi dato di mercato dovrebbe essere preso, al fine di evitare.
Se si apre una posizione su un simbolo specifico (in questo caso - "GBPUSD"), allora è auspicabile prendere tutti i dati anche su questo simbolo tramite marketinfo, cioè non solo AktualAsk=NormalizeDouble(Ask,Digits); aktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
E così qualsiasi dato di mercato dovrebbe essere preso, per evitare.
Grazie, Evillive!
Ho fatto dei cambiamenti. Ma ho già iniziato a comprare. Nessuna vendita dopo le modifiche. M15 test dal 30 settembre 2014 a metà ottobre.
Grazie, Evillive!
Fatto il cambiamento. Ma l'acquisto andava avanti lo stesso. Dopo le modifiche, non c'è vendita. M15 test dal 30 settembre 2014 a metà ottobre.
OrderClose (ticket1, L1n, AktualBid, 5);