Der OBV-Indikator in mt5 hat keine Möglichkeit, die Art der Preisberechnung zu wählen
In mt4 ist diese Option verfügbar.
Und warum?
In der Tat ist OBV als die Summe aller Volumen auf die gesamte Geschichte berechnet, wo die Kerze nach unten ist das Volumen "negativ" Also warum ist es möglich, den Preistyp für den Indikator Berechnung in mt4 wählen? wenn es nicht in der Berechnung beteiligt ist
Es gibt einen Teil des Codes zur Berechnung der separaten Anzahl von Kauf- und Verkaufsaufträgen. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann möchte ich eine Bedingung schreiben, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
Der OBV-Indikator in mt5 hat keine Möglichkeit, die Art der Preisberechnung zu wählen
In mt4 ist diese Option verfügbar.
Warum?
In der Tat ist OBV als die Summe aller Volumen auf die gesamte Geschichte berechnet, wo die Kerze nach unten ist das Volumen "negativ" Warum ist es also möglich, den Preistyp für den Indikator während seiner Berechnung in mt4 wählen? wenn es nicht in der Berechnung beteiligt ist
Und es gibt einen Platz, wo man es abstellen kann).
Dann werde ich die Frage wiederholen.
Es gibt einen Teil des Codes, der die Anzahl der einzelnen Kauf- und Verkaufsaufträge berechnet. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann habe ich eine Bedingung geschrieben, die, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird, die nächste Aktion auslöst. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
double LB=0,LS=0;
int b=0,s=0;
int izmb=0, izms=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol())
{
int tip = OrderType();
if (tip==OP_BUY)
{
LB += OrderLots();
b++;
}
if (tip==OP_SELL)
{
LS += OrderLots();
s++;
}
}
}
}
if (izmb>b ||izmb<b || izms>s || izms<s){ //условие сравнения количества ордеров, изменилось или нет,
izmb=b; //если изменилось то присваиваем новое значение, как его сохранить? Ведь с новым тиком
izms=s // оно опять будет равно "0"???
}
Wenn überhaupt, müssen Sie es statisch tun, sonst wird es zurückgesetzt.
Normalerweise mache ich Flaggen global. Natürlich wird im Körper der Funktion neu deklariert und Static benötigt. Aber warum ist niemandem aufgefallen, dass geschweifte Klammern fehlen)))) print & assignment should be in brackets)
Und ohne Statik wird es natürlich bei jedem Funktionsaufruf gedruckt, daprintsimbol="" zu NULL wird und dem Symbol der aktuelle Wert zugewiesen wird)
Es gibt einen Teil des Codes, der die Anzahl der einzelnen Kauf- und Verkaufsaufträge berechnet. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann habe ich eine Bedingung geschrieben, nach der die Aktion weitergegeben wird, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
Ich würde versuchen, dies zu tun
//+------------------------------------------------------------------+#property copyright"Copyright 2021, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strictint izmb,izms;
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- create timerEventSetMillisecondTimer(200);
izmb=0; izms=0;
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy timerEventKillTimer();
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(CountOrders(0,0)!=izmb){izmb=CountOrders(0,0);}
if(CountOrders(0,1)!=izms){izms=CountOrders(0,1);}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Подсчет ордеров по типу |//+------------------------------------------------------------------+//| 0 - ордера типа BUY 1 - ордера типа SELL |//| 2 - ордера типа BUYLIMIT 3 - ордера типа SELLLIMIT |//| 4 - ордера типа BUYSTOP 5 - ордера типа SELLSTOP |//| 6 - ордера типа Balance -1 - Все типы ордеров |//+------------------------------------------------------------------+int CountOrders(string symb="", int or_ty=-1)
{
int cnt=0;
if(symb=="0") symb=_Symbol;
for(int pos=OrdersTotal()-1;pos>=0;pos--)
{
if(OrderSelect(pos,SELECT_BY_POS)==true)
{
if(OrderSymbol()==symb || symb=="")
{
if(or_ty<0 || or_ty==OrderType()) cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
Wer weiß, warum der Advisor im Testgerät gut funktioniert, Anfragen stellt, usw., aber im echten Konto werden die Anfragen nicht angezeigt, obwohl der Roboter aktiv ist
Sagen Sie mir, wo Sie MT4 1320 herunterladen können
Der OBV-Indikator in mt5 hat keine Möglichkeit, die Art der Preisberechnung zu wählen
In mt4 ist diese Option verfügbar.
Und warum?
In der Tat ist OBV als die Summe aller Volumen auf die gesamte Geschichte berechnet, wo die Kerze nach unten ist das Volumen "negativ"
Also warum ist es möglich, den Preistyp für den Indikator Berechnung in mt4 wählen? wenn es nicht in der Berechnung beteiligt ist
Es gibt einen Teil des Codes zur Berechnung der separaten Anzahl von Kauf- und Verkaufsaufträgen. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann möchte ich eine Bedingung schreiben, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
Der OBV-Indikator in mt5 hat keine Möglichkeit, die Art der Preisberechnung zu wählen
In mt4 ist diese Option verfügbar.
Warum?
In der Tat ist OBV als die Summe aller Volumen auf die gesamte Geschichte berechnet, wo die Kerze nach unten ist das Volumen "negativ"
Warum ist es also möglich, den Preistyp für den Indikator während seiner Berechnung in mt4 wählen? wenn es nicht in der Berechnung beteiligt ist
Eine gute Frage ist die halbe Antwort.
Es gibt einen Teil des Codes zur Berechnung der separaten Anzahl von Kauf- und Verkaufsaufträgen.
Und es gibt einen Platz zum Einfügen)
Eine gut formulierte Frage enthält die halbe Antwort.
Und es gibt einen Platz, wo man es abstellen kann).
Dann werde ich die Frage wiederholen.
Es gibt einen Teil des Codes, der die Anzahl der einzelnen Kauf- und Verkaufsaufträge berechnet. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann habe ich eine Bedingung geschrieben, die, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird, die nächste Aktion auslöst. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
Wenn überhaupt, müssen Sie es statisch tun, sonst wird es zurückgesetzt.
Normalerweise mache ich Flaggen global. Natürlich wird im Körper der Funktion neu deklariert und Static benötigt. Aber warum ist niemandem aufgefallen, dass geschweifte Klammern fehlen)))) print & assignment should be in brackets)
Und ohne Statik wird es natürlich bei jedem Funktionsaufruf gedruckt, daprintsimbol="" zu NULL wird und dem Symbol der aktuelle Wert zugewiesen wird)
Dann werde ich die Frage wiederholen.
Es gibt einen Teil des Codes, der die Anzahl der einzelnen Kauf- und Verkaufsaufträge berechnet. (b - Kaufaufträge, s - Verkaufsaufträge)
Dann habe ich eine Bedingung geschrieben, nach der die Aktion weitergegeben wird, wenn ein neuer Auftrag eröffnet oder ein bestehender Auftrag geschlossen wird. D.h. wir müssen die Anzahl der früher eröffneten Aufträge und die Anzahl der nachfolgenden Änderungen vergleichen, aber ich weiß nicht, wie ich das in den Code schreiben soll. Wie speichere ich Änderungen in der Anzahl der Bestellungen? Bitte um Hilfe.
Ich würde versuchen, dies zu tun