Wie programmiert man? - Seite 201

 

Wie kann man diese Ergebnisse verbessern?!

Hallo!

Ich schreibe gerade meinen ersten EA, der im Backtesting teilweise gute Zahlen zeigt. Allerdings kann ich nicht herausfinden, wie man die schlechten Teile zu verbessern.

Erstens hat er einen hohen Gewinnanteil von 86%, aber nur einen kleinen Gewinnfaktor, weil die Verlustgeschäfte viel mehr verlieren als die Gewinner gewinnen!

Ich habe ein MM eingerichtet, das nicht mehr als 5% des Kontoguthabens pro Handel verwendet und über alle aktiven Handel nicht mehr als 11% des Kontoguthabens verwendet werden kann. Außerdem verfolge ich alle Stop-Losses.

Es scheint, dass ich die Gewinntrades zu früh schließe (OrderClose) und die Verlusttrades zu spät abbreche (oder S/L).

Was ist eine gute Strategie dafür? Ich habe etwas wie "Gewinne nicht schließen, auch wenn es ein Closebuy-Signal gibt" implementiert, aber das hat auch nicht besser funktioniert!

Ich wäre für jeden Tipp dankbar! Der vollständige Bericht ist hier zu finden.

 

Wie kann ich am einfachsten einen TP von 3 Pips für jeden manuellen Handel hinzufügen?

Ich brauche, um eine 3 pip Take Profit auf dem Forex für jeden manuell eingegebenen Handel hinzuzufügen. Was ist der einfachste Weg, dies zu tun? Ich habe keine Programmierkenntnisse und kann keinen Standardwert in metatrader 4's Optionen zu setzen finden.

 

Zurücksetzen des Kaufstoppauftrags

Hallo!

Ich habe diesen Code geschrieben und obwohl er kompiliert wird, funktioniert er nicht. (Das heißt, er löscht den Kaufstopp nicht)

Ich dachte, es könnte etwas mit der "for"-Anweisung nicht stimmen, aber ich bin ziemlich neu, also bin ich mir nicht sicher.

Wenn mich jemand auf das Problem hinweisen könnte, wäre ich sehr dankbar.

Danke

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

 
asgard2:
Hi,

Ich habe diesen Code geschrieben und obwohl er kompiliert wird, funktioniert er nicht. (Das heißt, er löscht den Buystop nicht)

Ich dachte, es könnte etwas mit der "for"-Anweisung nicht stimmen, aber ich bin ziemlich neu, daher bin ich mir nicht sicher.

Wenn mich jemand auf das Problem hinweisen könnte, wäre ich sehr dankbar.

Danke

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

[/code]

[CODE] if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(gesamt>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}
 
asgard2:
Hallo,

Ich habe diesen Code geschrieben und obwohl er kompiliert wird, funktioniert er nicht. (Das heißt, er löscht den Buystop nicht)

Wenn Sie BUY- oder SELL-Aufträge schließen möchten, müssen Sie die Funktion OrderClose() verwenden.

 
okfar:

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

Wissen Sie, ich habe zwei Tage lang daran gearbeitet und Sie haben es in wenigen Sekunden gelöst.

Vielen Dank, vielen Dank, vielen Dank. Dankeschön und Dankeschön..

Ich hoffe, ich klinge dankbar, denn ich bin begeistert!

Prost

 

Liebe Leute,

Ich habe eine einfache Frage, glaube ich.

Ich habe einen Indikator, der mich mit einem Pop-up (Alarm) benachrichtigt, und ich wollte einen benutzerdefinierten Sound hinzufügen (anders als die Standard alert.wav).

Mir ist aufgefallen, dass, sobald das Ereignis eintritt und der Alarm erscheint, Metatrader 4 IMMER den Sound abspielt, den ich für den Alarm zugewiesen habe (standardmäßig ist dies alert.wav, siehe MT4-Menü Extras>Optionen>Ereignisse), unabhängig davon, welchen "benutzerdefinierten" Sound ich im Indikator programmiert habe.

Ist es möglich, den Indikator so zu programmieren, dass ich sowohl einen visuellen Alarm als auch einen individuell zugewiesenen akustischen Alarm erhalte...?

Vielen Dank im Voraus...!

 

Sie können einen beliebigen Sound nehmen und ihn alert.wav nennen und die Originaldatei ersetzen.

 

Benutzerdefinierte Warnung ändern

Snowski:
Hallo zusammen,

Ich habe eine einfache Frage, glaube ich.

Ich habe einen Indikator, der mich mit einem Pop-up (Alarm) benachrichtigt, und ich wollte einen benutzerdefinierten Sound hinzufügen (anders als der Standard alert.wav).

Mir ist aufgefallen, dass, sobald das Ereignis eintritt und der Alarm erscheint, Metatrader 4 IMMER den Sound abspielt, den ich für den Alarm zugewiesen habe (standardmäßig ist dies alert.wav, siehe MT4-Menü Extras>Optionen>Ereignisse), unabhängig davon, welchen "benutzerdefinierten" Sound ich im Indikator programmiert habe.

Ist es möglich, den Indikator so zu programmieren, dass ich sowohl einen visuellen als auch einen individuell zugewiesenen akustischen Alarm erhalte...?

vielen Dank im Voraus...!

Hallo Snowski,

Versuchen Sie............

if (alert_ON == true) // um den akustischen Alarm ein- oder auszuschalten

{

Alert ("Geben Sie hier Ihr eigenes PopUp ein",Symbol(),"-",TimeFrame);

PlaySound("custom.wav");

}

Ich bin nicht so gut in der Programmierung, aber Sie können dies versuchen, da es funktionieren sollte. die benutzerdefinierte .wav, können Sie Ihren eigenen Dateinamen in die ("??????.wav") eingeben

Wenn Sie den Alarm ein- und ausschalten möchten, müssen Sie auch Folgendes hinzufügen

extern bool alert_ON = True; // oder false am Anfang des Indikatorcodes

 

Funktion Historie

Hallo,

Ich habe den folgenden Code. Ich versuche, eine Verzögerung zwischen meinen Buystop-Aufträgen für den Fall zu implementieren, dass sie gelöscht wurden. Ich habe die History-Funktion noch nie benutzt.

Ich bin nicht in der Lage, es zu kompilieren, weil eine unausgewogene Klammern Fehler, kann mir jemand sagen, warum diese unausgewogen sind?

Kann mir außerdem jemand sagen, ob ich auf dem richtigen Weg bin oder ob ich einen anderen Weg suchen sollte, dies zu tun?

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

Print("Access to history failed (",GetLastError(),")"); break;

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Danke

Grund der Beschwerde: