Discussione sull’articolo "Un Avvio Rapido o una Breve Guida per Principianti"

 

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.

Schnelleinstieg oder Kurzanleitung für Anfänger

Autore: Dmitriy Parfenovich

 

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.

 
GKS:

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.

Grazie a voi. Non mi aspettavo questo da me stesso. Continuerò a provarci.
 
mi è piaciuta la presentazione chiara, vorrei continuare con lo stesso stile, ad esempio per quanto riguarda le biblioteche....
 
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 prezzi
   
Non 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);
 
mln141:

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;

 
Alcune immagini sono volanti, per favore correggetele.
 

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.

Orders , positions and deals . Part I | MQLmagazine.com
  • mqlmagazine.com
This article is dedicated to working with orders, positions and deals. In this article we will discuss the general principles and passing to the new system. In a new article we will detail the MQL5 programming side on orders, positions and deals. MetaQuotes changed both the functions but also the principles in working with orders. A term...
 
Non un uomo ma oro, grande articolo. Su un sacco di materiali, io, come un principiante di programmazione, solo il tuo ))))))). Grazie per un tale articolo, molto semplice linguaggio hai scritto tutto solo impressionante, ora almeno capisco quello che faccio).