Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1235

 
Domanda, c'è un modo per determinare programmaticamente che il tester è in esecuzione in MT5?
 
Maksim Mihajlov:
Domanda, c'è un modo per determinare programmaticamente che un tester è in esecuzione in MT5?
Informazioni su un programma MQL5 in esecuzione- proprietà di un programma mql5, che aiuta a controllare ulteriormente il suo comportamento;
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Salve. Non so a chi chiedere, dove scrivere. È possibile fare trading tramite MT5 con Interactive Brokers? Ho fatto loro una domanda, ma hanno gettato un link nella risposta per contattare https://www.metaquotes.net/ru/company/contacts, quindi è un modulo per una persona giuridica. Sembra che ci sia una specie di ponte software tra MT5 e TWS, puoi dirmi qualcosa al riguardo? Se c'è la possibilità di acquistare quotazioni dalle borse americane con la trasmissione MT5 per vedere il grafico di un certo strumento e utilizzare gli indicatori MT5, ma fare transazioni attraverso TWS. Se questa non è la domanda giusta, per favore ditemi dove scrivere e chiedere.
Контакты представительств компании MetaQuotes
Контакты представительств компании MetaQuotes
  • www.metaquotes.net
По вопросам приобретения торговой платформы MetaTrader 5 вы можете обратиться к нашим представителям:
 
akarustam:

Stanco di capire la ragione della costante differenza nell'ottimizzazione di un buon EA in MT5... Sulla stessa coppia di valute, con lo stesso EA, con gli stessi parametri di ottimizzazione, c'è una differenza nei risultati di ottimizzazione... Cioè, uso sempre lo stesso EA e mi aspettavo gli stessi risultati, ma in realtà sono diversi...

Illuminare pliz, a chi è familiare con questo tipo di confusione?

GRAZIE.

Per lo più variabili forzate non inizializzate o riferimenti a variabili globali (quelle nel terminale)

 

Aiuto, indicatore a candela

#property tester_everytick_calculate
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   1
//--- plot newCandles
#property indicator_label1  "newCandles"
#property indicator_type1   DRAW_CANDLES
#property indicator_color1  clrWhite
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double   newCandles_Open[];
double   newCandles_High[];
double   newCandles_Low[];
double   newCandles_Close[];
int      newCandles_index  = 0;
//--- цены формирующейся свечи
double   candle_Open    = -1.0;
double   candle_High    = -1.0;
double   candle_Low     = -1.0;
double   candle_Close   = -1.0;

int OnInit()
{
//--- indicator buffers mapping
   SetIndexBuffer(0, newCandles_Open,  INDICATOR_DATA);
   SetIndexBuffer(1, newCandles_High,  INDICATOR_DATA);
   SetIndexBuffer(2, newCandles_Low,   INDICATOR_DATA);
   SetIndexBuffer(3, newCandles_Close, INDICATOR_DATA);
//+---------------------
   PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0);
//+---------------------
   PlotIndexSetString(0,PLOT_LABEL,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
   IndicatorSetString(INDICATOR_SHORTNAME,"newCandles("+IntegerToString(in_Candle_Size_Point)+", "+TimeToString(in_Start_Time,TIME_DATE)+")");
//+---------------------
   ArrayInitialize(newCandles_Open,0.0);
   ArrayInitialize(newCandles_High,0.0);
   ArrayInitialize(newCandles_Low,0.0);
   ArrayInitialize(newCandles_Close,0.0);

//+---------------------
   return(INIT_SUCCEEDED);
}

OnCalculate esegue il calcolo e riempie i buffer INDICATOR_DATA quando le condizioni sono soddisfatte

      newCandles_Open[newCandles_index]      = candle_Open;
      newCandles_High[newCandles_index]      = candle_High;
      newCandles_Low[newCandles_index]       = candle_Low;
      newCandles_Close[newCandles_index++]   = candle_Close;

Ho pensato che quando questi buffer sono riempiti la candela dovrebbe essere disegnata. Ma non lo è. Perché?

 
Сергей Таболин:

Aiuto, indicatore a candela

OnCalculate esegue il calcolo e riempie i buffer INDICATOR_DATA quando le condizioni sono soddisfatte

Ho pensato che quando questi buffer sono riempiti la candela dovrebbe essere disegnata. Ma non lo è. Perché?

Dov'è il codice completo? Non è chiaro cosa fate esattamente in OnCalculate. Come esempio, usate la guidaDRAW_CANDLES.

E cos'è questa candela con prezzi negativi?
 
Vladimir Karputov:

Dov'è il codice completo? Non è chiaro cosa stai facendo esattamente in OnCalculate. Come esempio, usate la guidaDRAW_CANDLES.

E cos'è questa candela con prezzi negativi?

Forum sul trading, sistemi di trading automatico e test di strategia

MQ5::Domanda sull'indicatore candlestick.

Sergey Tabolin, 2020.08.05 18:17

Edgar, grazie, ma per me è chiaro. Quello che non è chiaro è perché non ci sono zecche prima del 2019?


Ora la domanda principale è.

Perché le candele non sono disegnate nell'indicatore? Dove mi sbaglio?

Fonte di pubblico dominio ))))

Questa è solo un'inizializzazione per iniziare il conto alla rovescia. I prezzi sono contati correttamente.
File:
newCandles.mq5  21 kb
 
Сергей Таболин:
Questa è solo un'inizializzazione per iniziare il conto alla rovescia. I prezzi sono contati correttamente.

Nel debug, passate e controllate in quali casi la vostra condizione sarà soddisfatta?


 
Vladimir Karputov:

Nel debug, passate e controllate in quali casi la vostra condizione sarà soddisfatta?


Mi rendo conto che questo potrebbe non essere corretto. Ma!

Funziona. La condizione è soddisfatta quando l'indicatore si avvia. Una volta. I prezzi sono stampati. Poi vengono calcolati i tick. Sono anche stampati.

2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.05 21:31:16 >>> Свеча 03623 >> open = 105.638 hihg = 105.675 low = 105.473 close = 105.473 > Сформирована за 07539 тиков.
2020.08.06 14:27:31.101 newCandles (USDJPY,H1)  2020.08.06 03:14:33 >>> Свеча 03624 >> open = 105.473 hihg = 105.635 low = 105.395 close = 105.635 > Сформирована за 19034 тика.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  2020.08.06 10:54:42 >>> Свеча 03625 >> open = 105.635 hihg = 105.695 low = 105.471 close = 105.471 > Сформирована за 08861 тик.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  ~~~~ Предварительный расчёт индикатора закончен.
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00872 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00873 Бар 03626
2020.08.06 14:27:31.102 newCandles (USDJPY,H1)  Расчёт на тике 00874 Бар 03626

Ma voglio sapere perché non vengono stampati i candelabri.

 
Сергей Таболин:

Mi rendo conto che questa potrebbe non essere la cosa giusta da fare. Ma!

Funziona. La condizione è soddisfatta quando l'indicatore si avvia. Una volta. I prezzi sono stampati. Poi vengono calcolati i tick. Sono anche stampati.

Ma voglio sapere perché non viene disegnata nessuna candela.

Per prima cosa, imparate a costruire l'indicatore basato su DRAW_CANDLES. Allo stesso tempo bisogna pensare a cosa sia una candela '0'.

Questo fino a quando non ci si avvicina alle zecche.


Per disegnare una candela, dovete riempire TUTTI e quattro i buffer. Non si fa così - si saltano sia newCandles_Close che ....