[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 533
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich kann die Logik des Compilers nicht verstehen. Ich habe eine Funktion. Ich deklariere eine externe Variable.
int start;
weiter den Funktionskörper
double B()
{
int i=0, k=AuftragshistorieGesamt();
for (i=k-1; i<=k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()< 0) {start=1;}
}
}
}
}
Der Wert der Startvariablen muss gespeichert werden und bei Bedarf mit Null gleichgesetzt werden. Aber in diesem Fall, wenn OrderProfit()<0 , dann Start=1, und wenn OrderProfit()> 0 , dann automatisch Start=0.
keine
wenn OrderProfit()> 0, speichert die Variable denselben Wert
Können Sie mir sagen, wo ich es finden kann? Es ist alles auf Englisch.
keine
Wenn OrderProfit()> 0 ist, bleibt der Inhalt der Variablen
Hier ist die Funktion .
//+------------------------------------------------------------------+
double Balans()
{
int i=0, k=OrdersHistoryTotal();
for (i=k-1; i<=k; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Print(" start= ",start);
if(lots<0.01) lots=0.01;
lots=NormalizeDouble(lots,2);
return(lots);
}
//+------------------------------------------------------------------+
Hier ist das Protokoll.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: open #1 sell 0.01 GBPUSD bei 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: close #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 at price 2.03210
16:01:36 2007.07.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: open #2 sell 0.01 GBPUSD bei 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: close #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 at price 2.02890
16:01:36 2007.07.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: open #3 sell 0.01 GBPUSD bei 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: close #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 at price 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: open #4 sell 0.01 GBPUSD bei 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: close #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 at price 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: open #5 sell 0.01 GBPUSD bei 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: close #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 at price 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: open #6 sell 0.01 GBPUSD at 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Tester: Take Profit #6 bei 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: open #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: close #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: open #8 sell 0.01 GBPUSD at 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Tester: Gewinnmitnahme #8 bei 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
Hier ist die Funktion .
//+------------------------------------------------------------------+
double Balans()
{
int i=0, k=AuftragshistorieGesamt();
for (i=k-1; i<=k; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Print(" start= ",start);
if(Lose<0,01) Lose=0,01;
lots=NormalizeDouble(lots,2);
return(lots);
}
//+------------------------------------------------------------------+
Hier ist das Protokoll.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1: open #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1: close #1 sell 0.01 GBPUSD at 2.03190 tp: 2.03100 at price 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.13 16:04 Bars_Trader GBPUSD,M1: open #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1: close #2 sell 0.01 GBPUSD at 2.02860 tp: 2.02770 at price 2.02890
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1: open #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1: close #3 sell 0.01 GBPUSD at 2.03640 tp: 2.03550 at price 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1: open #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1: close #4 sell 0.01 GBPUSD at 2.04880 tp: 2.04790 at price 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1: open #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1: close #5 sell 0.01 GBPUSD at 2.05140 tp: 2.05050 at price 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1: open #6 sell 0.01 GBPUSD at 2.04840 tp: 2.04750 ok
16:01:36 2007.07.19 17:33 Tester: Gewinnmitnahme #6 bei 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1: open #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1: close #7 sell 0.01 GBPUSD at 2.04810 tp: 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1: open #8 sell 0.01 GBPUSD at 2.06160 tp: 2.06070 ok
16:01:36 2007.07.25 02:12 Tester: Gewinnmitnahme #8 bei 2,06070 (2,06040 / 2,06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1: start= 0
Zeigen Sie den Code ausführlicher an. Im Moment können Sie zum Beispiel nicht sehen, wo diese Variable deklariert ist.
den Code ausführlicher darstellen. Im Moment können Sie zum Beispiel nicht sehen, wo diese Variable deklariert ist.
extern int TF;
extern int TP;
extern int BARS;
extern int BarrierMinute;
extern int Step=0;
//--------
extern double ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ;
extern double Decrease=2;
extern inttern Wait=2;
extern inttern Wiederholen Sie;
extern int int MA_Sell;
extern int int Applied_Price_Sell;
//extern int MAPeriod_1;
//extern int Calc=8;
extern double Lots=5;
//----
static int PrevTime=0;
Doppellose;
int wait,start,step,repeat;
datetime openTime=0;
double lot=0.1;
Hallo, können Sie mir sagen, wie man Aufträge OP_ BUYSTOP und OP_SELLSTOP in meinem EA für OP_SELLLIMIT und OP_BUYLIMIT zu ändern? Ich habe es versucht und meine BUYLIMIT Aufträge sind platziert, aber SELLLIMIT diejenigen nicht einmal denken, vielleicht bin ich etwas falsch machen?
Expertd10.mq4 (5,82 KB) löschen
Hallo Freunde, könnt ihr mir bitte bei diesem Problem helfen?
Ich schreibe einen Expert Advisor mit Software Stoploss, das Grundschema des Algorithmus ist wie folgt:
int start()
{double x, PreProfit, TekProfit;
for (x=0; x<1; x++) //Der Operator der For-Schleife sollte (theoretisch) 1 Mal ausgeführt werden
{PreviousProfit=(-20);}/// Weisen Sie (theoretisch) 1 Zeitwert zu!
TextProfit=OrderProfit();//Ermittelt den Gewinn der ausgewählten Order
if (PredPreviousProfit<TecProfit)//wenn der aktuelle Gewinn höher ist als der vorherige, dann...
{WeakProfit=TekProfit;}/// Weisen Sie der Variable PredCompetitive einen neuen Wert zu!
//dann sollte die Variable PredCompanyProfit den höchsten Gewinnwert aller Zeiten enthalten!
}
Der Haken an der Sache ist, dass der Wert der Variablen "x" bei einem neuen Tick auf Null zurückgesetzt wird und der Wert (-20) bei jedem neuen Tick der Variablen "PredPreCompetition" zugewiesen wird! Damit geht der gesamte Sinn des Algorithmus verloren! Die Variable "PrevPreprofit" wurde so konzipiert, dass sie den maximalen Wert des Auftragsgewinns konstant hält, bis sie gezwungen ist, diesen Wert bei der Schließung des Auftrags zu "entsorgen".
Worin liegt der Fehler? Vielleicht gibt es andere Lösungen für dieses Problem? Ich bin Ihnen im Voraus sehr dankbar!
Der Haken ist, dass der Wert der Variable "x" bei einem neuen Tick auf Null zurückgesetzt wird und die Zuweisung des Wertes (-20) an die Variable "PredPreprofit" bei jedem neuen Tick durchgeführt wird! Damit geht der gesamte Sinn des Algorithmus verloren! Die "PrevProfit"-Variable ist so konzipiert, dass sie den maximalen Gewinnwert des Auftrags dauerhaft beibehält, bis dieser Wert beim Schließen des Auftrags zwangsweise "zurückgesetzt" wird.
Worin liegt der Fehler? Vielleicht gibt es andere Lösungen für dieses Problem? Vielen Dank im Voraus!
Hallo, können Sie mir sagen, wie man Aufträge OP_ BUYSTOP und OP_SELLSTOP in meinem EA für OP_SELLLIMIT und OP_BUYLIMIT ändern? Ich habe versucht, Aufträge BUYLIMIT ändern, aber SELLLIMIT nicht einmal denken, vielleicht bin ich etwas falsch machen?
Haben Sie Bid und Ask nicht vergessen, als Sie sie geändert haben?
Wer weiß, wie man einen Standardindikator im Strategietester sichtbar macht?