Angaben zu Stop Loss und Take Profit vor den Kauf- und Verkaufsbedingungen
double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); // лучшее предложение на покупкуdouble Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); // лучшее предложение на продажуdouble SL = NormalizeDouble(StopLoss,_Digits);
double TP = NormalizeDouble(TakeProfit,_Digits);
bool Buy_Condition_1=...;
bool Buy_Condition_2=...;
bool Buy_Condition_3=...;
а сам
bool PositionModify(conststring_Symbol,constdouble SL,constdouble TP)
{
if(PositionSelect(_Symbol)==true) // есть открытая позиция
{
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
Alert("SL!!!");
return; // закрыл
}
MqlTradeRequest request={0};
MqlTradeResult result ={0};
mrequest.action=TRADE_ACTION_SLTP;
mrequest.symbol=_Symbol;
mrequest.magic =EA_Magic;
mrequest.sl =StopLoss;
mrequest.tp =TakeProfit;
OrderSend(mrequest,mresult);
if(mresult.retcode==10009 || mresult.retcode==10008) //запрос выполнен или ордер успешно помещен
{
Alert("Стопка прошла#:",mresult.order,"!!");
}
else
{
Alert("Стопка не прошла - код ошибки:",GetLastError());
return(false);
}
return(true);
}
//----------------------------------------------------------------- if(Buy_Close_1 || Buy_Close_2)
после отсылки ордера на покупку.
Пока при компиляции борюсь с "лишними" скобками фигурными.
Вопрос дубль 2 - правильно ли я расположил модификацию позиции?
И вообще, "классический" ли он имеет код (при условии, что он верный)?
Die Sache ist, wenn ich geschweifte Klammern in Orten, bei der Kompilierung erzeugt es - 'PositionModify' - Funktion kann nur im globalen Bereich deklariert werden
und dieses Mal glaube ich es, d.h. die "Position Modifier" selbst sollte vor int OnInit() und Bedingungen (wenn) nach dem Kauf Abschnittplatziert werden ?
Geben Sie mir den Code, ich verstehe nicht, was Sie meinen.
PS: Sie sollten die Funktion PositionModify() auf globaler Ebene beschreiben, d. h. auf der Ebene, auf der sich die Funktionen befinden :OnInit(), OnTick(), OnDeinit().
Hier ist der Code. Er hat nur einen Stopp für den Kauf, da er auch einen Stopp für den Verkauf hat.
Korrigiert. Er lässt sich ohne Fehler kompilieren. Ich habe es nicht mit dem Tester getestet. Ihr Code war nicht lesbar. Gewöhnen Sie sich an das Code-Layout wie in meiner korrigierten Version.
Danke (obwohl ich nicht ganz verstehe, was sich außer dem Layout geändert hat).
Was bedeutet "SMB" in Zeile 2 und wo ist es durch Werte definiert? Kann man nicht _Symbol schreiben?
Können Sie mir sagen, wie ich das Folgende am besten implementieren kann: Der Experte startet, wenn er initialisiert wird, zeichnet er (im Diagrammbereich? irgendwo anders?) z.B. eine Textbox und eine Schaltfläche. Der Experte verarbeitet Ticks. Wenn ein Benutzer Folgendes eingibt Wenn Sie einen Wert in die TextBox eingeben und die Taste drücken, sieht der Tick Handler diese neuen Daten.
Mit anderen Worten - was ist der richtige (einfachere, bessere) Weg, den interaktiven Austausch von Benutzerdaten mit dem Expert Advisor über Windows-GUI-Elemente zu organisieren? CChartObjectEdit und CChartObjectButton ist, entschuldigen Sie, eine Art von "Pornographie".
Ich danke Ihnen. Entschuldigen Sie, wenn die Frage einfach ist, und schauen Sie sich bitte um, wo die Antwort ist!
Wenn Sie das nicht tun wollen, müssen Sie die Variablen richtig lesen.
Стоплос и тейкпрофит в пункти.*Понт = 0.002-ето тейк,ну надо и к добавит.
PositionModify(Symbol(),NormalizeDouble(Bid - SL*_Point,4),TP*_Point);
PositionModify(Symbol(),NormalizeDouble((Bid - SL*_Point),4),NormalizeDouble((Bid + TP*_Point),4));
Wo steht die Positionsänderung geschrieben?
Angaben zu Stop Loss und Take Profit vor den Kauf- und Verkaufsbedingungen
Es gibt einen Fehler im Code:
Ich danke Ihnen. Es ist weg.
Wie sieht es mit der Positionierung aus?
Die Sache ist, wenn ich geschweifte Klammern in Orten, bei der Kompilierung erzeugt es - 'PositionModify' - Funktion kann nur im globalen Bereich deklariert werden
und dieses Mal glaube ich es, d.h. die "Position Modifier" selbst sollte vor int OnInit() und Bedingungen (wenn) nach dem Kauf Abschnittplatziert werden ?
Geben Sie mir den Code, ich verstehe nicht, was Sie meinen.
PS: Sie sollten die Funktion PositionModify() auf globaler Ebene beschreiben, d. h. auf der Ebene, auf der sich die Funktionen befinden : OnInit(), OnTick(), OnDeinit().
Korrigiert. Er lässt sich ohne Fehler kompilieren. Ich habe es nicht mit dem Tester getestet. Ihr Code war nicht lesbar. Gewöhnen Sie sich an das Code-Layout wie in meiner korrigierten Version.
Danke (obwohl ich nicht ganz verstehe, was sich außer dem Layout geändert hat).
Was bedeutet "SMB" in Zeile 2 und wo ist es durch Werte definiert? Kann man nicht _Symbol schreiben?
mrequest.action = TRADE_ACTION_SLTP; mrequest.symbol = smb; mrequest.magic = EA_Magic; mrequest.sl = SL; mrequest.tp = TP;Hallo, können Sie mir sagen, ob die Aufträge auf den Signalen ausgeführt werden , wenn ich meinen Terminalcomputer ausgeschaltet habe?
Guten Tag,
Können Sie mir sagen, wie ich das Folgende am besten implementieren kann: Der Experte startet, wenn er initialisiert wird, zeichnet er (im Diagrammbereich? irgendwo anders?) z.B. eine Textbox und eine Schaltfläche. Der Experte verarbeitet Ticks. Wenn ein Benutzer Folgendes eingibt Wenn Sie einen Wert in die TextBox eingeben und die Taste drücken, sieht der Tick Handler diese neuen Daten.
Mit anderen Worten - was ist der richtige (einfachere, bessere) Weg, den interaktiven Austausch von Benutzerdaten mit dem Expert Advisor über Windows-GUI-Elemente zu organisieren? CChartObjectEdit und CChartObjectButton ist, entschuldigen Sie, eine Art von "Pornographie".
Ich danke Ihnen. Entschuldigen Sie, wenn die Frage einfach ist, und schauen Sie sich bitte um, wo die Antwort ist!
Cool.
1. Der Code lässt sich jetzt kompilieren. Erste Änderung.
Schade, dass Kompilieren und Betriebsfähigkeit nicht dasselbe sind)
Warum setzt der Code im Tester Stoplosses und Profits, aber nicht im Chart?!
Ich fange langsam an auszuflippen)))
Warum setzt der Code im Tester Stoplosses und Profits, aber nicht im Chart?!
Ich werde langsam wütend))).
Lester:Zdes legte eine Vorlage, im Inneren gibt es eine Änderung, und zeigte, wie man polzuvatsya.
https://www.mql5.com/ru/forum/6343/page73
Wenn Sie das nicht tun wollen, müssen Sie die Variablen richtig lesen.
Hallo, können Sie mir sagen, ob die Signalaufträge ausgeführt werden, wenn ich meinen Terminalcomputer ausgeschaltet habe?