Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1235

 
Frage, gibt es eine Möglichkeit, programmatisch zu bestimmen, dass der Tester in MT5 läuft?
 
Maksim Mihajlov:
Frage, gibt es eine Möglichkeit, programmatisch festzustellen, dass ein Tester in MT5 läuft?
Informationen über ein laufendes MQL5-Programm- Eigenschaften eines mql5-Programms, die helfen, sein Verhalten weiter zu kontrollieren;
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Hallo. Ich weiß nicht, wen ich fragen und wohin ich schreiben soll. Ist es möglich, über MT5 mit Interactive Brokers zu handeln? Ich habe ihnen eine Frage gestellt, aber sie haben in der Antwort einen Link zur Kontaktaufnahme mit https://www.metaquotes.net/ru/company/contacts eingefügt , es handelt sich also um ein Formular für eine juristische Person. Es scheint eine Art Softwarebrücke zwischen MT5 und TWS zu geben, können Sie mir etwas darüber sagen? Gibt es eine Möglichkeit, Kurse von amerikanischen Börsen mit MT5-Übertragung zu kaufen, um den Chart eines bestimmten Instruments zu sehen und MT5-Indikatoren zu verwenden, aber Transaktionen über TWS durchzuführen. Wenn dies nicht die richtige Frage ist, sagen Sie mir bitte, wo ich sie stellen kann.
Контакты представительств компании MetaQuotes
Контакты представительств компании MetaQuotes
  • www.metaquotes.net
По вопросам приобретения торговой платформы MetaTrader 5 вы можете обратиться к нашим представителям:
 
akarustam:

Ich bin es leid, den Grund für den ständigen Unterschied bei der Optimierung eines guten EAs im MT5 zu verstehen... Bei demselben Währungspaar, mit demselben EA, mit denselben Optimierungsparametern, gibt es einen Unterschied in den Optimierungsergebnissen... D.h., ich verwende immer denselben EA und erwarte dieselben Ergebnisse, aber in Wirklichkeit sind sie anders...

Klären Sie bitte auf, wer mit dieser Art von Verwirrung vertraut ist?

DANKE!

Meistens nicht initialisierte Zwangsvariablen oder Verweise auf globale Variablen (die im Terminal)

 

Hilfe, Candlestick-Indikator

#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 führt die Berechnung durch und füllt die Puffer INDICATOR_DATA, wenn die Bedingungen erfüllt sind

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

Ich dachte, wenn diese Puffer gefüllt sind, sollte der Kerzenständer gezeichnet werden. Das ist es aber nicht. Warum?

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

Hilfe, Candlestick-Indikator

OnCalculate führt die Berechnung durch und füllt die Puffer INDICATOR_DATA, wenn die Bedingungen erfüllt sind

Ich dachte, wenn diese Puffer gefüllt sind, sollte der Kerzenständer gezeichnet werden. Aber das ist es nicht. Und warum?

Wo ist der vollständige Code? Es ist nicht klar, was genau Sie in OnCalculate tun. Verwenden Sie als Beispiel die HilfeDRAW_CANDLES.

Und was ist das für eine Kerze mit negativen Preisen?
 
Vladimir Karputov:

Wo ist der vollständige Code? Es ist nicht klar, was genau Sie in OnCalculate tun. Verwenden Sie als Beispiel die HilfeDRAW_CANDLES.

Und was ist das für eine Kerze mit negativen Preisen?

Forum für Handel, automatisierte Handelssysteme und Strategietests

MQ5::Frage zum Candlestick-Indikator.

Sergey Tabolin, 2020.08.05 18:17

Edgar, ich danke Ihnen, aber es ist mir klar. Unklar ist, warum es vor 2019 keine Zecken gibt.


Die wichtigste Frage ist nun.

Warum sind die Kerzen im Indikator nicht eingezeichnet? Wo liege ich falsch?

Öffentlich zugängliche Quelle ))))

Dies ist nur eine Initialisierung, um den Countdown zu starten. Die Preise werden korrekt gezählt.
Dateien:
newCandles.mq5  21 kb
 
Сергей Таболин:
Dies ist lediglich eine Initialisierung, um den Countdown zu starten. Die Preise werden korrekt gezählt.

Gehen Sie bei der Fehlersuche durch und prüfen Sie, in welchen Fällen Ihre Bedingung erfüllt wird.


 
Vladimir Karputov:

Gehen Sie bei der Fehlersuche durch und prüfen Sie, in welchen Fällen Ihre Bedingung erfüllt wird?


Mir ist klar, dass dies möglicherweise nicht korrekt ist. Aber!

Es funktioniert. Die Bedingung ist erfüllt, wenn der Indikator startet. Einmal. Die Preise sind gedruckt. Dann werden die Ticks berechnet. Sie werden auch gedruckt.

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

Aber ich möchte wissen, warum keine Kerzenständer gedruckt werden.

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

Mir ist klar, dass dies wahrscheinlich falsch ist. Aber!

Es funktioniert. Die Bedingung ist erfüllt, wenn der Indikator startet. Einmal. Die Preise sind gedruckt. Dann werden die Ticks berechnet. Sie werden auch gedruckt.

Aber ich möchte wissen, warum keine Kerzenständer gezeichnet werden.

Lernen Sie zunächst, den Indikator auf der Grundlage von DRAW_CANDLES zu erstellen. Gleichzeitig muss man sich überlegen, was eine "0"-Kerze ist.

Das heißt, bis man den Zecken zu nahe kommt.


Um einen Kerzenständer zu zeichnen, müssen Sie ALLE vier Puffer füllen. Das tun Sie nicht - Sie überspringen sowohl newCandles_Close als auch .....

Grund der Beschwerde: