Buongiorno,
Molto bene, solo che non capisco una cosa. Quando inserisco l'ordine in WIN e WDO l'EA apre 6 ordini con il numero di contratti che ho inserito in "leverage". Quindi anche se voglio fare trading con 1 contratto non posso, ne apre 6.
È un concetto che ho trascurato? Sono un principiante, quindi parto da questa premessa.
Grazie mille per la condivisione.
È un concetto che ho trascurato? Sono un principiante, quindi parto da questa premessa.
Grazie mille per la condivisione.
Potrebbe essere che il sistema stia inviando più di un ordine quando si fa clic con il mouse, i motivi potrebbero essere diversi, ma grazie per averlo segnalato 😁👍, per risolvere questo problema, dovrai aggiungere un test supplementare quando fai clic con il mouse, i punti da modificare o aggiungere sono contrassegnati in VERDE ... assicuratevi di digitarlo nel modo giusto, altrimenti l'ordine potrebbe non essere inviato o non essere accettato dal server... ma l'aggiunta di questo ulteriore test dovrebbe risolvere il problema. La logica è la seguente: quando si fa clic con il mouse, la variabile STATIC viene impostata e viene ripristinata per consentire l'invio di un nuovo ordine solo quando il mouse non viene più premuto.
inline void MoveTo(int X, int Y, uint Key) { static double d_block = 0; int w = 0; datetime dt; bool bEClick, bKeyBuy, bKeySell; double take = 0, stop = 0, price; bEClick = (Key & 0x01) == 0x01; /Cliccare con il tasto sinistro del mouse bKeyBuy = (Key & 0x04) == 0x04; //SHIFT premuto bKeySell = (Key & 0x08) == 0x08; //CTRL premuto ChartXYToTimePrice(Infos.Id, X, Y, w, dt, price); ObjectMove(Infos.Id, Infos.szHLinePrice, 0, 0, price = (bKeyBuy != bKeySell ? AdjustPrice(price) : 0)); ObjectMove(Infos.Id, Infos.szHLineTake, 0, 0, take = price + (Infos.TakeProfit * (bKeyBuy ? 1 : -1))); ObjectMove(Infos.Id, Infos.szHLineStop, 0, 0, stop = price + (Infos.StopLoss * (bKeyBuy ? -1 : 1))); if ((bEClick) && (bKeyBuy != bKeySell) && (d_block == 0)) CreateOrderPendent(bKeyBuy, Infos.Volume, (d_block = price), take, stop, Infos.IsDayTrade); else d_block = 0; ObjectSetInteger(Infos.Id, Infos.szHLinePrice, OBJPROP_COLOR, (bKeyBuy != bKeySell ? Infos.cPrice : clrNONE)); ObjectSetInteger(Infos.Id, Infos.szHLineTake, OBJPROP_COLOR, (take > 0 ? Infos.cTake : clrNONE)); ObjectSetInteger(Infos.Id, Infos.szHLineStop, OBJPROP_COLOR, (stop > 0 ? Infos.cStop : clrNONE)); };
Buon pomeriggio, dove devo impostare il numero di punti e il numero di lotti per il mini-indice?
In realtà, in questo codice la regolazione è automatica. Si indica il finanziatore e il numero di contratti da negoziare e il codice effettua l'aggiustamento in termini di punti... Queste informazioni vengono fornite quando si posiziona l'Expert Advisor sul grafico. 😁👍

- 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 Sviluppo di un Expert Advisor di trading da zero è stato pubblicato:
In questo articolo, discuteremo come sviluppare un robot di trading con una programmazione minima. Naturalmente, MetaTrader 5 offre un elevato livello di controllo sulle posizioni di trading. Tuttavia, utilizzare solo la capacità manuale di effettuare ordini può essere piuttosto difficile e rischioso per gli utenti meno esperti.
L'Expert Advisor presentato in questo articolo può essere migliorato in vari modi per lavorare con set di parametri, ma ciò richiederebbe più codice che lo renderà più indipendente da MetaTrader 5.
Il grande successo di questo EA è che utilizza MetaTrader 5 stesso per eseguire azioni che non sono nel suo codice, e quindi è estremamente stabile e affidabile.
Autore: Daniel Jose