DanilaMactep #: Nein. Ich habe noch nicht herausgefunden, wie ich das, was ich brauche, umsetzen kann - vielleicht gelingt mir das bei der zweiten Iteration;-)
Maxim Kuznetsov hat Ihnen gesagt wie. Haben Sie es gelesen?
Guten Tag, bitte helfen Sie bei der Lösung des Problems mit dem falschen Abschluss von Aufträgen
Wenn ein positiver Gewinn erzielt wird, schließt der Expert Advisor den ersten und den letzten Auftrag im Auftragsgitter
Bei einem Demokonto ist alles in Ordnung, aber bei einem echten Konto wird nur der vorletzte Auftrag geschlossen. Ich stand vor einem solchen Problem, als ich das gesamte Auftragsnetz schließen musste und das Problem in den Requotes lag, dann wurde das Flag gesetzt und das Problem ist gelöst. Hier habe ich das Gleiche getan, aber das Problem ist nicht gelöst.
Fahne:
int flag_close3=0;
//-------------------------------------------------------------------+ Команда на закрытие мин макс и предпоследнего ордеров в сетке профит = 0if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
flag_close3=1;
}
//-------------------------------------------------------------------+ Флаг на закрытие ордеровif(flag_close3==1)
ClosseMinMaxPenultimateOrdersZero();
//+----------------------------------------------------------------------------+//| Закрытие минимального максимального и предпоследнего ордеров профит = 0 |//+----------------------------------------------------------------------------+void ClosseMinMaxPenultimateOrdersZero()
{
int slipp = (int) MarketInfo(_Symbol,MODE_SPREAD)*2;
for(int i = OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(OrderType() == OP_BUY)
{
if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
if(OrderClose(GetTicketPenultimateOrder(), FindPenultimateLots(), Bid, slipp) && OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Bid, slipp) &&
OrderClose(GetTicketMaxOrder(), FindLastLots(), Bid, slipp))
{
SendNotification("Закрылся минимальный максимальный и предпоследний ордера на покупку: " + Symbol() + ", Баланс: " + DoubleToString(NormalizeDouble(AccountBalance(), 2))
+ ", Свободно денежных средств: " + DoubleToString(NormalizeDouble(AccountFreeMargin(), 2)));
Print("Максимальный и минимальный ордера на покупку успешно закрыты!");
}
else
{
Print("Не удалось закрыть максимальный и минимальный ордера на покупку!",GetLastError());
}
}
}
if(OrderType() == OP_SELL)
{
if(CalculiteProfitMinMaxPenultimateOrders() >= 0 && Drawdown >= DrawdownClosingMinMaxOrdersZero && FindPenultimateProfit() > 0)
{
if(OrderClose(GetTicketPenultimateOrder(), FindPenultimateLots(), Ask, slipp) && OrderClose(GetTicketMinOrder(), GetMinLotOrder(), Ask, slipp) &&
OrderClose(GetTicketMaxOrder(), FindLastLots(), Ask, slipp))
{
SendNotification("Закрылся минимальный максимальный и предпоследний ордера на продажу: " + Symbol() + ", Баланс: " + DoubleToString(NormalizeDouble(AccountBalance(), 2))
+ ", Свободно денежных средств: " + DoubleToString(NormalizeDouble(AccountFreeMargin(), 2)));
Print("Максимальный и минимальный ордера на продажу успешно закрыты!");
}
else
{
Print("Не удалось закрыть максимальный и минимальный ордера на продажу!",GetLastError());
}
}
}
}
}
}
}
EVGENII SHELIPOV Bei einem Demokonto ist alles in Ordnung, aber bei einem echten Konto wird nur der vorletzte Auftrag geschlossen. Ich stand vor einem solchen Problem, als ich das gesamte Auftragsnetz schließen musste und das Problem in den Requotes lag, dann wurde das Flag gesetzt und das Problem ist gelöst. Hier habe ich das Gleiche getan, aber das Problem ist nicht gelöst.
//-------------------------------------------------------------------+ Команда на удаление линий отображающую среднюю цену мин и макс ордеров и текстаif(CountTrade() == 0 || Drawdown < DrawdownClosingMinMaxOrdersZero)
{
flag_close2=0;flag_close3=0;
Haben Sie ein 24-Stunden-Gedächtnis?
Nein. Ich habe noch nicht herausgefunden, wie ich das, was ich brauche, umsetzen kann - vielleicht gelingt mir das bei der zweiten Iteration;-)
Maxim Kuznetsov hat Ihnen gesagt wie. Haben Sie es gelesen?
Guten Tag, bitte helfen Sie bei der Lösung des Problems mit dem falschen Abschluss von Aufträgen
Wenn ein positiver Gewinn erzielt wird, schließt der Expert Advisor den ersten und den letzten Auftrag im Auftragsgitter
Bei einem Demokonto ist alles in Ordnung, aber bei einem echten Konto wird nur der vorletzte Auftrag geschlossen. Ich stand vor einem solchen Problem, als ich das gesamte Auftragsnetz schließen musste und das Problem in den Requotes lag, dann wurde das Flag gesetzt und das Problem ist gelöst. Hier habe ich das Gleiche getan, aber das Problem ist nicht gelöst.
Fahne:
Danke!!!!
Fahne:
Danke!!!!
Wo wird Ihre Flagge zurückgesetzt?
Wenn ich es hier reinstellen würde, wäre es richtig
Wenn ich es hier reinschreibe, wird es richtig sein.
Nein. Auf diese Weise wird sie zurückgesetzt, wenn alle Aufträge abgeschlossen sind.
Da Sie nicht alle Aufträge abschließen müssen, ist es besser, die Tickets erneut auszuführen und sie abzuschließen.
Nein. Auf diese Weise wird sie zurückgesetzt, wenn alle Aufträge abgeschlossen sind.
Da Sie nicht alle Aufträge abschließen müssen, ist es besser, die Tickets erneut auszuführen und abzuschließen
Einen Moment noch.
Einen Moment noch.
aber auf diese Weise.
Nein. Auf diese Weise wird sie zurückgesetzt, wenn alle Aufträge abgeschlossen sind.
Da Sie nicht alle Aufträge abschließen müssen, ist es besser, die Tickets in einer Schleife durchzugehen und sie abzuschließen.
Muss ich bei der Funktion "Auftrag abschließen" nicht durch die Ticker gehen?
sondern so.
Das heißt, wenn es keine Aufträge gibt