Dirò la stessa cosa. Non sei bravo in logica. Qual è il problema per calcolare immediatamente il lotto iniziale, in base ai fondi disponibili e al valore del rischio (credo che sia stato scritto circa il 3%)? Perché devi fare tutto in un solo posto?
Prendete il valore del margine libero, moltiplicate per il rischio, dividete per 100 e il valore del margine per 1 lotto - ecco la formula più semplice per calcolare il lotto con una determinata percentuale del margine libero. Inoltre, è necessario prendere in considerazione il passo del cambio di lotto e prevenire il superamento della dimensione del lotto min/max, consentito dalla società di intermediazione:
Ti sto dicendo che l'EA negozia in un breve periodo di tempo in cui c'è la probabilità che si aprano 9 ordini opposti consecutivi che si sovrappongono l'un l'altro e ogni ordine successivo è moltiplicato per 2, quindi il margine potrebbe non tenere e l'ultimo ordine pendente potrebbe non aprirsi, e quindi dobbiamo calcolare dall'ultimo lotto massimo possibile. Ho pensato che il miglior numero di ordini in un intervallo di 5-10 minuti è 9. In generale ho bisogno di calcolare un margine nel caso in cui tutti gli ordini saranno aperti e sulla base di questi dati in ordine inverso per calcolare il primo lotto.
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Mi sto scervellando.
if(OrdersTotal()>=OrderCount) //Обрати внимание на эту конструкцию
{ //return;
}
//---- if(r>50 && p>m) //условия открытия ордера на покупку
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketB,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),0.1,Ask,5,Red);
}
}
}
ticketB=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",111,0,Green); //открыnие ордера на покупку
}
//----- if(r<50 && p<m) //условия открытия ордера на продажу
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketB,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),0.1,Bid,5,Red);
}
}
}
ticketS=OrderSend(Symbol(),OP_SELL,0.1,Bid,5,0,0,"",111,0,Blue);
}
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Mi sto scervellando.
Se l'ordine è selezionato sul biglietto, non hai bisogno di un'azione nel ciclo. Se vuoicorreggere il codice, usa il pulsante SRC perincollare il codice nel messaggio.
#property copyright"Copyright 2017, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+int ticketB,ticketS;
voidOnTick()
//------------------------------------------------------------------------------------------------
{
double p = iClose("EURUSD",PERIOD_M15,0); //показание текущей цены double r = iRSI ("EURUSD",PERIOD_M15,21,PRICE_CLOSE,0); //значение индюка RSIdouble m = iMA ("EURUSD",PERIOD_M15,89,0,MODE_EMA,PRICE_CLOSE,0); //значение индюка МАint OrderCount = 1;
//---------------ПОДСЧЕТ ОРДЕРОВ------------------------------------------------------------------if(OrdersTotal() >= OrderCount)
{
return;
}
//-------------ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ--------------------------------------------------------------------/*if(r > 50 && p > m) //условия открытия ордера на покупку
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",111,0,Green);
}
//------------ЗАКРЫТИЕ ОРДЕРА НА ПРОДАЖУ--------------------------------------------------------
if(r<50 && p<m)
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketB,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_BUY)
{
ticketB = OrderClose(OrderTicket(),0.1,Bid,5,Red);
}
}
}
}*///------------------ОТКРЫТИЕ ОРДЕРА НА ПРОДАЖУ---------------------------------------------------------if(r < 50 && p < m) //условия открытия ордера на продажу
{
ticketS = OrderSend(Symbol(),OP_SELL,0.1,Bid,5,0,0,"",111,0,Blue);
}
//---------------------ЗАКРЫТИЕ ОРДЕРА НА ПРОДАЖУ---------------------------------------------------------if(r>50 && p>m)
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketS,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_SELL)
{
ticketS = OrderClose(OrderTicket(),0.1,Ask,5,Red);
}
}
}
}
}
//+------------------------------------------------------------------+
Grazie per l'SRC), questo è quello che sembra, ts sembra così, vendere dovrebbe accadere quando la candela ha chiuso sotto il wop e rsi sotto 50, e chiudere l'ordine a condizioni opposte, e contemporaneamente dopo la chiusura dovrebbe accadere comprare e dopo chiudere, quindi un ordine e non più e così via ciclicamente ... ma ora ho un ordine aperto e questo è tutto, e gli stop non funzionano ...
funnyrain8: Grazie per l'SRC), questo è quello che sembra, ts sembra così, vendere dovrebbe accadere quando candela chiusa sotto il polso e rsi sotto 50, e chiudere l'ordine alle condizioni opposte, e allo stesso tempo dopo la chiusura dovrebbe accadere l'acquisto e dopo la chiusura, poi un ordine e non più e così via ciclicamente ... ma ora ho aperto un ordine e tutti, e si ferma non funziona ...
L'ho riscritto nel mio stile, spero che tu capisca, se qualcosa non è chiaro, non esitare a chiedere
riscritto nel mio stile, spero che tu capisca, se non capisci qualcosa chiedi
...
oh, pensavo di aver scritto quasi tutto tranne la chiusura e ho ancora molto da imparare...grazie mille ora almeno ho un esempio da cui partire...tin, grazie ancora)
Salve. Ho scaricato il software Metatrader 5. Ho firmato per 2 segnali. Il saldo del mio conto è positivo per 20$. Sto cercando di installare l'hosting virtuale e non funziona nulla. Premo il navigatore, mi collego al conto di trading, ma non ho nemmeno questa scheda nella tabella dell'hosting virtuale. Vi sto inviando degli screenshot. Come mi collego all'hosting condiviso?
Жанна Платонова: Salve. Ho scaricato il software Metatrader 5. Ho firmato per 2 segnali. Il saldo del mio conto è positivo per 20$. Sto cercando di installare l'hosting virtuale e non funziona nulla. Premo il navigatore, mi collego al conto di trading, ma non ho nemmeno questa scheda nella tabella dell'hosting virtuale. Vi sto inviando degli screenshot. Come mi collego all'hosting condiviso?
Salve. Ho una domanda - sul mac (sierra) in tutti i consegnati (attraverso wine) da diverse aziende piattaforme mt4 lo stesso glitch - il terminale se si rilascia dal suo posto normale in basso per spostarlo come una finestra libera - si restringe e lavorare attraverso di esso è completamente impossibile. Disattivare l'auto-arrangiatore non funziona. Restituire il terminale sul primo posto è assolutamente impossibile - cioè semplicemente non si attacca e non si apre più. Ho una domanda - qualcuno può conoscere una scorciatoia o un pulsante per riportare l'intera interfaccia al suo posto originale. Sinceramente.
Dirò la stessa cosa. Non sei bravo in logica. Qual è il problema per calcolare immediatamente il lotto iniziale, in base ai fondi disponibili e al valore del rischio (credo che sia stato scritto circa il 3%)? Perché devi fare tutto in un solo posto?
Prendete il valore del margine libero, moltiplicate per il rischio, dividete per 100 e il valore del margine per 1 lotto - ecco la formula più semplice per calcolare il lotto con una determinata percentuale del margine libero. Inoltre, è necessario prendere in considerazione il passo del cambio di lotto e prevenire il superamento della dimensione del lotto min/max, consentito dalla società di intermediazione:
Ti sto dicendo che l'EA negozia in un breve periodo di tempo in cui c'è la probabilità che si aprano 9 ordini opposti consecutivi che si sovrappongono l'un l'altro e ogni ordine successivo è moltiplicato per 2, quindi il margine potrebbe non tenere e l'ultimo ordine pendente potrebbe non aprirsi, e quindi dobbiamo calcolare dall'ultimo lotto massimo possibile. Ho pensato che il miglior numero di ordini in un intervallo di 5-10 minuti è 9. In generale ho bisogno di calcolare un margine nel caso in cui tutti gli ordini saranno aperti e sulla base di questi dati in ordine inverso per calcolare il primo lotto.
}
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Mi sto scervellando.
}
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Mi sto scervellando.
Come questo
}
Dove ho sbagliato a scrivere? Penso di averlo preso da un esempio, potresti per favore dirmi come scriverlo correttamente in modo che l'ordine si chiuda
Mi sto scervellando.
Se l'ordine è selezionato sul biglietto, non hai bisogno di un'azione nel ciclo. Se vuoicorreggere il codice, usa il pulsante SRC perincollare il codice nel messaggio.
Grazie per l'SRC), questo è quello che sembra, ts sembra così, vendere dovrebbe accadere quando candela chiusa sotto il polso e rsi sotto 50, e chiudere l'ordine alle condizioni opposte, e allo stesso tempo dopo la chiusura dovrebbe accadere l'acquisto e dopo la chiusura, poi un ordine e non più e così via ciclicamente ... ma ora ho aperto un ordine e tutti, e si ferma non funziona ...
L'ho riscritto nel mio stile, spero che tu capisca, se qualcosa non è chiaro, non esitare a chiedere
...
riscritto nel mio stile, spero che tu capisca, se non capisci qualcosa chiedi
...
oh, pensavo di aver scritto quasi tutto tranne la chiusura e ho ancora molto da imparare...grazie mille ora almeno ho un esempio da cui partire...tin, grazie ancora)
Salve. Ho scaricato il software Metatrader 5. Ho firmato per 2 segnali. Il saldo del mio conto è positivo per 20$. Sto cercando di installare l'hosting virtuale e non funziona nulla. Premo il navigatore, mi collego al conto di trading, ma non ho nemmeno questa scheda nella tabella dell'hosting virtuale. Vi sto inviando degli screenshot. Come mi collego all'hosting condiviso?
Clicca su aiuto nel menu principale.