Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non posso spiegare questa complicata logica MQL).
È così che l'ho implementato:
datetime timeBar = iTime(_Symbol,PERIOD_CURRENT, 0);// период можно поставить по своему усмотрениюdatetimestatic timeOpen = 0;
if((PositionsTotal()==0)&&(c0>h1)&&(rGENUP>0.30)&&(timeBar > timeOpen)) // Условие для открытия позиции.
{
MqlTradeRequest request;
MqlTradeResult result;
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =1; // объем в 1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.deviation=3;
request.sl = NormalizeDouble(Ask-50*_Point,_Digits);
request.tp = NormalizeDouble(Ask+50*_Point,_Digits);
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки//--- информация об операцииPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
// допустимое отклонение от цены
timeOpen = timeBar;
}
Mi chiedo perché ci sia un codice così grande in MQL5 per l'apertura delle posizioni. A differenza di MQL4. In 4 è solo una linea. Possiamo ridurlo? Per esempio, possiamo rimuovere il gestore degli errori?
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non posso spiegare questa complicata logica MQL).
È così che l'ho implementato:
Mi chiedo perché ci sia così tanto codice in MQL5 per aprire una posizione. A differenza di MQL4. In 4, è solo una linea. Ma qui... Si può accorciare? Per esempio, possiamo rimuovere il gestore degli errori?
Usare le classi commerciali. E il codice sarà molto breve.
Esempio:
//+------------------------------------------------------------------+//| Only_one_purchase.mq5 |//+------------------------------------------------------------------+#property version"1.003"#property script_show_inputs#include <Trade\Trade.mqh>
CTrade m_trade; // trading object//--- input parametersinputENUM_POSITION_TYPE InpPositionType = POSITION_TYPE_BUY; // Position Typeinputdouble InpVolume = 0.0; // Volumeinputulong m_magic = 15489; // magic number//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
m_trade.SetExpertMagicNumber(m_magic);
//--- open a positionif(InpPositionType==POSITION_TYPE_BUY)
m_trade.Buy(InpVolume);
else
m_trade.Sell(InpVolume);
}
//+------------------------------------------------------------------+
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non riesco a spiegare questa complicata logica MQL).
Questo è il modo in cui l'ho implementato:
Mi chiedo perché ci sia un codice così grande in MQL5 per l'apertura delle posizioni. A differenza di MQL4. In 4, è solo una linea. Ma qui... Puoi accorciarlo? Per esempio, possiamo rimuovere il gestore degli errori?
Quindi, se avete nella condizione
if((PositionsTotal()==0)&&
perché avete bisogno di più controlli per un nuovo bar? O c'è un'opzione che la posizione sarà chiusa alla stessa barra e la seconda apertura dovrebbe essere proibita?
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non riesco a spiegare questa complicata logica MQL).
È così che l'ho implementato:
Mi chiedo perché ci sia un codice così grande in MQL5 per aprire una posizione. A differenza di MQL4. In 4, è solo una linea. Ma qui... Puoi accorciarlo? Per esempio, possiamo rimuovere il gestore degli errori?
Sapete, molto tempo fa, quando c'era MQL4, la gente diceva indignata che non era stato dato loro un accesso di livello inferiore - in modo che potessero fare qualcosa a modo loro.
Beh, l'hanno fatto - ora hanno dato accesso a OrderSend() in MQL4 - per così dire, hanno implementato la sua logica in MQL - quindi fate quello che volete. Ma no - ora ho delle lamentele perché è troppo complicato.
Complicato? Nessun problema - datemi le classi commerciali in SB - sono quasi le stesse delle funzioni commerciali standard di MQL4. In MQL4 tali classi sono le funzioni commerciali. E in MQL5 - tutto con accesso aperto.
Sapete, molto tempo fa, quando c'era MQL4, la gente diceva indignata che non gli davano un accesso di livello inferiore - in modo che potessero fare qualcosa a modo loro.
Beh, l'hanno fatto - ora hanno dato accesso a OrderSend() in MQL4 - per così dire, hanno implementato la sua logica in MQL - quindi fate quello che volete. Ma no - ora ho delle lamentele perché è troppo complicato.
Complicato? Nessun problema - datemi le classi commerciali in SB - sono quasi le stesse delle funzioni commerciali standard di MQL4. In MQL4 tali classi sono le funzioni commerciali. E in MQL5 - tutto con accesso aperto.
Perché avete bisogno di controllare un nuovo bar? O c'è un'opzione per cui la posizione si chiuderà sulla stessa barra e dovremmo disabilitare una seconda apertura?
Esattamente - c'è un'opzione per chiudere la posizione sulla stessa barra.
Neanche questo ha funzionato.
Che razza di folletto ama i chilometri di codice...
Il vostro problema può essere risolto in SEI righe di codice, tenendo conto della dichiarazione delle variabili.
Spero che tu riesca a capire la variabile del segnale.
О! Funziona! Grazie, compagni, per le idee!
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non posso spiegare questa complicata logica MQL).
È così che l'ho implementato:
Mi chiedo perché ci sia un codice così grande in MQL5 per l'apertura delle posizioni. A differenza di MQL4. In 4 è solo una linea. Possiamo ridurlo? Per esempio, possiamo rimuovere il gestore degli errori?О! Funziona! Grazie, compagni, per le idee!
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non posso spiegare questa complicata logica MQL).
È così che l'ho implementato:
Mi chiedo perché ci sia così tanto codice in MQL5 per aprire una posizione. A differenza di MQL4. In 4, è solo una linea. Ma qui... Si può accorciare? Per esempio, possiamo rimuovere il gestore degli errori?Usare le classi commerciali. E il codice sarà molto breve.
Esempio:
О! Funziona! Grazie, compagni, per le idee!
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non riesco a spiegare questa complicata logica MQL).
Questo è il modo in cui l'ho implementato:
Mi chiedo perché ci sia un codice così grande in MQL5 per l'apertura delle posizioni. A differenza di MQL4. In 4, è solo una linea. Ma qui... Puoi accorciarlo? Per esempio, possiamo rimuovere il gestore degli errori?Quindi, se avete nella condizione
perché avete bisogno di più controlli per un nuovo bar? O c'è un'opzione che la posizione sarà chiusa alla stessa barra e la seconda apertura dovrebbe essere proibita?
О! Funziona! Grazie, compagni, per le idee!
Ma ho dovuto modificarlo un po'. È diventato anche più facile, senza (vero). Anche se non riesco a spiegare questa complicata logica MQL).
È così che l'ho implementato:
Mi chiedo perché ci sia un codice così grande in MQL5 per aprire una posizione. A differenza di MQL4. In 4, è solo una linea. Ma qui... Puoi accorciarlo? Per esempio, possiamo rimuovere il gestore degli errori?Sapete, molto tempo fa, quando c'era MQL4, la gente diceva indignata che non era stato dato loro un accesso di livello inferiore - in modo che potessero fare qualcosa a modo loro.
Beh, l'hanno fatto - ora hanno dato accesso a OrderSend() in MQL4 - per così dire, hanno implementato la sua logica in MQL - quindi fate quello che volete. Ma no - ora ho delle lamentele perché è troppo complicato.
Complicato? Nessun problema - datemi le classi commerciali in SB - sono quasi le stesse delle funzioni commerciali standard di MQL4.
In MQL4 tali classi sono le funzioni commerciali. E in MQL5 - tutto con accesso aperto.
Approfittatene.
Sapete, molto tempo fa, quando c'era MQL4, la gente diceva indignata che non gli davano un accesso di livello inferiore - in modo che potessero fare qualcosa a modo loro.
Beh, l'hanno fatto - ora hanno dato accesso a OrderSend() in MQL4 - per così dire, hanno implementato la sua logica in MQL - quindi fate quello che volete. Ma no - ora ho delle lamentele perché è troppo complicato.
Complicato? Nessun problema - datemi le classi commerciali in SB - sono quasi le stesse delle funzioni commerciali standard di MQL4.
In MQL4 tali classi sono le funzioni commerciali. E in MQL5 - tutto con accesso aperto.
Approfittatene.
Docente e Docente. Perché sei così arrabbiato (oggi) ©
Docente, ah Docente. Perché sei così arrabbiato (oggi) ©
Entrare nel buco di ghiaccio...
Quindi se avete una condizione
Perché avete bisogno di controllare un nuovo bar? O c'è un'opzione per cui la posizione si chiuderà sulla stessa barra e dovremmo disabilitare una seconda apertura?
Esattamente - c'è un'opzione per chiudere la posizione sulla stessa barra.
(Tagliare il nuovo muro. ) Il "muro" è chiamato breakeven.
Questo è come è stato implementato in MQL4:
(L'ho copiato da qualche parte che non ricordo).
Ma ecco come è implementato in 5-PC. Come si fa?
Ho guardato tra le Trading Classes, ma non lo vedo. Ma la cosa è necessaria. Cosa dicono i professionisti?
Come posso evitare che le compravendite di altri grafici appaiano sul grafico?
Solo i trade del robot che si trova sul grafico dato.