Denn es ist nicht möglich, die Anzeigeeigenschaften (Zeichnungsteil) über den Indikatorgriff (Berechnungsteil) einzustellen. Ein Fehler liegt vor, wenn etwas auf eine bestimmte Weise geschrieben ist, aber auf eine andere Weise funktioniert.
Hier ist ein anderer Ansatz erforderlich. Zugriff auf den Indikator über den Kurznamen, wie in der Funktionsgruppe ChartIndicatorXXX. Etwas wie ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)
Wir haben bereits darüber nachgedacht, sind aber noch nicht dazu gekommen.
Wenn es für programmatisch gesetzte Indikatoren gedacht ist, wäre es dann nicht besser, das hervorgehobene Symbol durch den Indikatorgriff zu ersetzen?
Alexey Viktorov: Wenn dies für programmatisch gesetzte Indikatoren gedacht ist, ist es dann nicht besser, das hervorgehobene Element durch den Indikator-Handle zu ersetzen?
Nicht besser. Denn ohne Änderungen an der Architektur ist dies nicht möglich. Ich habe ausführlich beschrieben, warum.
Der Abschluss des daraus resultierenden Tauschtickets ist nicht garantiert. Ob er gefüllt wird, hängt vom Ausführungsmodus des Instruments und den Einstellungen des jeweiligen Servers ab.
Wer sich für ein Nicht-Null-Ergebnis entschieden hat, muss handeln.
Err warum, wenn es sowieso nicht sichtbar ist?
Diese Parameter können weggelassen werden, wenn keine Notwendigkeit für die Anzeige eines Indikators besteht.
Und die Kompatibilität mit dem alten Code wird nicht beeinträchtigt. Während der Prüfung wird der Indikator immer angezeigt.
Denn es ist nicht möglich, die Anzeigeeigenschaften (Zeichnungsteil) über den Indikatorgriff (Berechnungsteil) einzustellen. Ein Fehler liegt vor, wenn etwas auf eine bestimmte Weise geschrieben ist, aber auf eine andere Weise funktioniert.
Hier ist ein anderer Ansatz erforderlich. Zugriff auf den Indikator über den Kurznamen, wie in der Funktionsgruppe ChartIndicatorXXX. Etwas wie ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)
Wir haben bereits darüber nachgedacht, sind aber noch nicht dazu gekommen.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten der Sprache mql5, Tipps und Tricks
fxsaber, 2017.02.25 16:02
{
if ((Result.deal == 0) && (Result.order != 0))
{
if (::HistorySelectByPosition(::HistoryOrderGetInteger(Result.order, ORDER_POSITION_ID)))
for (int i = ::HistoryDealsTotal() - 1; i >= 0; i--)
{
const ulong DealTicket = ::HistoryDealGetTicket(i);
if (Result.order == ::HistoryDealGetInteger(DealTicket, DEAL_ORDER))
{
Result.deal = DealTicket;
break;
}
}
}
return(::HistoryDealSelect(Result.deal));
}
// Учтены MT5-нюансы: Result.deal == 0
static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )
Wenn dies für programmatisch gesetzte Indikatoren gedacht ist, ist es dann nicht besser, das hervorgehobene Element durch den Indikator-Handle zu ersetzen?
Was ist die "Result.deal-Korrektur"?
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Wanzen, Wanzen, Fragen
fxsaber, 2017.02.23 15:34
Vom BSB.
Der Abschluss des daraus resultierenden Tauschtickets ist nicht garantiert. Ob er gefüllt wird, hängt vom Ausführungsmodus des Instruments und den Einstellungen des jeweiligen Servers ab.
Wer sich für ein Nicht-Null-Ergebnis entschieden hat, muss handeln.
Diese Parameter können weggelassen werden, wenn keine Notwendigkeit besteht, den Indikator anzuzeigen.
Nun ... Ich sehe, dass Sie sich nicht auf ein Ergebnis ungleich Null verlassen können.deal. Was steht dann in dieser Zeile?
// Учтены MT5-нюансы: Result.deal == 0Wo werden sie verbucht?
Nun ... Ich sehe, dass Sie sich nicht auf ein Ergebnis ungleich Null verlassen können.deal. Was steht dann in dieser Zeile?
Wo werden sie verbucht?
In OrderSendSync wird die überladene (siehe oben) HistoryDealSelect aufgerufen.
fxsaber:
Die Synchronisierung ist nicht mehr relevant. Nur der Teil, der für die Korrektur von Result.deal verantwortlich ist, wird hervorgehoben.