Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 930
![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
DiPach , grazie ancora per il tuo aiuto. Ho analizzato i vostri esempi. Ho apportato alcune modifiche al mio codice di avvio. Il risultato è questo:
Cosa è stato cambiato:
1. Ho spostato la linea contenente int awd1[]; dichiarazione dell'array all'interno della funzione OnStart()
2. Aggiunta la funzione ArrayResize(awd1,6,7);
3. Lo script funziona.
Cercherò di trarre alcune conclusioni. Negli script, è corretto dichiarare gli array all'interno della funzione OnStart(). Dopo che l'array è stato dichiarato, deve essere necessariamente definito nelle sue dimensioni usando la funzione ArrayResize(); altrimenti il compilatore si mette in allarme. Le mie conclusioni sono corrette? In caso contrario, si prega di dare l'interpretazione corretta.
DiPach , grazie ancora per il tuo aiuto. Ho analizzato i vostri esempi. Ho apportato alcune modifiche al mio codice di avvio. Il risultato è questo:
Cosa è stato cambiato:
1. ha spostato la linea contenente la dichiarazione di int awd1[]; array all'interno della funzione OnStart()
2. Aggiunta la funzione ArrayResize(awd1,6,7);
3. Lo script funziona.
Cercherò di trarre delle conclusioni. Negli script, è corretto dichiarare gli array all'interno della funzione OnStart(). Dopo che l'array è stato dichiarato, deve essere necessariamente definito nelle dimensioni usando la funzione ArrayResize(); altrimenti il compilatore genererà un errore. Le mie conclusioni sono corrette? In caso contrario, si prega di dare l'interpretazione corretta.
In generale, sì. E funzionerà, almeno in silenzio, ma molto bene. :)
Mi limiterò a specificare i seguenti punti:
1. Quando si dichiarano le normali variabili e gli array, penso che si dovrebbe considerare ciò che lo script (o l'EA/indicatore) sta per fare e a cosa sono destinate le variabili/array.
Il flusso di lavoro del tuo script allegato permette di dichiarare le variabili non a livello globale del programma, ma localmente. Cioè, l'array è dichiarato una volta sola. Non abbiamo bisogno di dichiarazioni di loop nel corpo di Start(), per esempio, prima di iniziare il ciclo for() e quando abbiamo bisogno di ulteriori dichiarazioni di alcune variabili dopo for() {}:
Di conseguenza, l'array non è dichiarato a livello di variabili globali del programma ma nel corpo di OnStart() prima della dichiarazione del ciclo for() - è abbastanza accettabile in questo schema di esecuzione del programma.
Dal mio punto di vista, se non c'è bisogno di dichiarare qualcosa a livello di variabili globali in un programma, è meglio usare questa opportunità e dichiarare tutto ciò che possiamo localmente.
2. Per quanto riguarda il codice, lasciatemi chiarire:
Cioè:
Questo è il modo in cui il 5 sarebbe appropriato per:
P./S.: Un altro chiarimento, per sicurezza, usando ArrayResize() - per gli array dinamici. Nella documentazione di questa funzione , ci sono informazioni su quando questa funzione non può ridimensionare gli array dinamici.
Perché non posso aggiungere amici?
Ciao, come posso fare in modo che il nuovo prezzo sia mostrato per primo e il prezzo precedente scenda in basso e così via? Ho fatto un esempio per renderlo chiaro.
Ciao, come posso fare in modo che il nuovo prezzo sia mostrato per primo e il prezzo precedente scenda in basso e così via? Questo sarebbe chiaro fatto un esempio.
Ho fatto un esempio, e con le condizioni più o meno si può capire da soli:
Ho fatto un esempio, e potete risolvere i termini più o meno da soli:
Ciao, come posso fare in modo che il nuovo prezzo sia mostrato per primo e il prezzo precedente scenda in basso e così via? Per renderlo chiaro, ho fatto un esempio.
Ecco un codice completamente primitivo.
Ecco un codice perfettamente primitivo fatto.
Ciao a tutti. Ho provato ad aprire un ordine di trading nello strategy tester usando uno script rudimentale, senza successo.
int start()
{
//----
int res;
double ask=Close[0]+MarketInfo(_Symbol,MODE_SPREAD)*Point;
res=OrderSend(Symbol(),OP_BUY,0.1,ask,3,0,0,",0,0,Blu);
if(res>-1)Alert("Open BUY order with ticket ",res);
//----
ritorno(0);
}
Ho messo lo script sul grafico del tester in modalità visualizzazione, ma l'ordine di trading si apre nel terminale MT4.
Inoltre non posso ottenere informazioni sugli ordini aperti nel tester di strategia usando SimpleFXTester_v2.ex4.
Per favore, aiutatemi a capire questo.
Ciao a tutti. Ho provato ad aprire un ordine di trading nello strategy tester usando uno script rudimentale, senza successo.
int start()
{
//----
int res;
double ask=Close[0]+MarketInfo(_Symbol,MODE_SPREAD)*Point;
res=OrderSend(Symbol(),OP_BUY,0.1,ask,3,0,0,",0,0,Blu);
if(res>-1)Alert("Open BUY order with ticket ",res);
//----
ritorno(0);
}
Ho messo lo script sul grafico del tester in modalità visualizzazione, ma l'ordine di trading si apre nel terminale MT4.
Inoltre non posso ottenere informazioni sugli ordini aperti nel tester di strategia usando SimpleFXTester_v2.ex4.
Per favore, aiutatemi a capire questo.