Dimitri, hai detto di non essere uno scrittore! Ma lo sei! Complimenti per il piacevole inizio. È bello rendersi conto che hai iniziato con un piccolo materiale, anche se non è così voluminoso, l'importante è iniziare, e lì man mano che si va avanti sarà sempre più lungo acquisire esperienza attraverso i tuoi articoli e/o da altri scrittori.
Grazie per l'attenzione.
Dimitri, hai detto di non essere uno scrittore! Ma lo sei! Complimenti per il piacevole inizio. È bello rendersi conto che hai iniziato con un piccolo materiale, anche se non è così voluminoso, l'importante è iniziare, e man mano che si va avanti sarà sempre più lungo acquisire esperienza attraverso i tuoi articoli e/o da altri scrittori.
Grazie per il vostro tempo.
iMA_handle=iMA("EURUSD",PERIOD_H1,40,0,MODE_SMA,PRICE_CLOSE); //collegare l'indicatore e ottenere il suo handle ....... ChartIndicatorAdd(ChartID(),0,iMA_handle); // aggiungere l'indicatore al grafico dei prezziNon funziona così. Ma se si rimuovono il simbolo e l'ora, tutto va bene.
iMA_handle=iMA(NULL,0,40,0,MODE_SMA,PRICE_CLOSE);
Non funziona così. Ma se si rimuove il simbolo e l'ora, tutto va bene.
Se si esegue il test su EURUSD e sul timeframe orario, tutto funziona.
D'altra parte, hai trovato il problema e lo hai risolto da solo utilizzando la guida (forse), cosa non è un vantaggio?
Grazie, l'articolo è stato corretto.
alcune piccole domande:
1 cosa succede o riaccade quando il periodo di tempo del grafico cambia durante l'esecuzione?
2 ima_handle definito in OnInit(), iMA_handle=iMA("EURUSD",PERIOD_H1,10,0,MODE_SMA,PRICE_CLOSE);
è possibile modificare i parametri dinamici di questo handle da parte del programma stesso, come ad esempio cambiare PERIOD_H1,10 in PERIOD_M15, 39 durante l'esecuzione?
3 Che cos'è il deal?
Congratulazioni!
Codice estremamente semplice e ben scritto... Credo che, facendo riferimento alla libreria, tu abbia fatto in poche righe quello che io ho fatto in quasi 100 (solo per aprire e chiudere posizioni long).
Mi riferisco in particolare a queste righe:
if(m_Position.Select(my_symbol)) //se la posizione per questo simbolo esiste già
{
if(m_Position.PositionType()==POSITION_TYPE_SELL) m_Trade.PositionClose(my_symbol); //e questa è una posizione Sell, allora chiudetela
if(m_Position.PositionType()==POSITION_TYPE_BUY) return; /oppure, se si tratta di una posizione Buy, allora uscire
}
m_Trade.Buy(0.1,my_symbol); //se siamo arrivati qui, significa che non c'è nessuna posizione; allora la apriamo
}
if(iMA_buf[1]<Close_buf[1] && iMA_buf[0]>Close_buf[0]) //se i valori dell'indicatore erano inferiori al prezzo di chiusura e sono diventati maggiori
{
if(m_Position.Select(my_symbol)) //se la posizione per questo simbolo esiste già
{
if(m_Position.PositionType()==POSITION_TYPE_BUY) m_Trade.PositionClose(my_symbol); //e questa è una posizione Buy, allora chiudetela
if(m_Position.PositionType()==POSITION_TYPE_SELL) return; /oppure, se si tratta di una posizione Sell, allora uscire
}
m_Trade.Sell(0.1,my_symbol); //se siamo arrivati qui, significa che non c'è nessuna posizione; allora la apriamo
}
L'unica cosa che mi è sfuggita potrebbe essere un comando per operare solo quando appare una nuova barra. C'è stata una discussione in: www.mql5.com/en/forum/5762
Io uso il seguente codice, postato da mogplus8:
int statico LastBarCount=0;
if(Bars(_Symbol,_Period)>LastBarCount)
LastBarCount=Bars(_Symbol,_Period);
else
return;
Sono un po' perplesso riguardo alla tua affermazione sui Mestieri.
I mestieri presentati nell'articolo sono molto vicini ai "sigilli" di artiel http://mqlmagazine.com/leading-article/orders-positions-and-deals-part-i/. Sono la stessa cosa? Quali sono le loro differenze?
Tra l'altro, nella pagina linkata, l'autore afferma che: Ogni ordine piazzato sul mercato è un'operazione a sé stante, con un proprio risultato, indipendente dagli altri.
Incollo le parole qui solo per chiarire le possibili idee sbagliate a chi ha prestato attenzione ai commenti.
Grazie.
- mqlmagazine.com
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Un Avvio Rapido o una Breve Guida per Principianti è stato pubblicato:
Ciao caro lettore! In questo articolo, cercherò di spiegarti e mostrarti come puoi imparare facilmente e rapidamente i principi della creazione dell’Expert Advisor, lavorare con gli indicatori, ecc. È rivolto ai principianti e non presenterà alcun esempio difficile o astruso.
Questo articolo ha trattato i principi fondamentali da considerare quando si programma un EA. Abbiamo imparato come usare l'Help contestuale integrato in MetaEditor 5 per ottenere informazioni su varie funzioni, abbiamo avuto un'idea generale di ordini e posizioni e ci siamo avvicinati all’uso delle librerie standard.
Autore: Dmitriy Parfenovich