|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Hallo.
Hätte gerne eine Art SL im EA. Allerdings keinen normalen SL in Pips. Sondern einen der aussteigt wenn bei z.B. einem Buy -Der Close (Bar 1) kleiner als der schnellste GD ist und -Der Wert (in Euro) der Position im minus ist Bei nem Sell das Ganze natürlich entgegen gesetzt. Bis jetzt schauts so aus: Code:
//Close Trade if (IsInvested){ for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP<F_MA && F_MA<M_MA) || (CAA=true && TC>CA)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP>F_MA && F_MA>M_MA) || (CAA=true && TC>CA)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} |
|
|||
Korrekt so?
Code:
//Sicherheitsausstieg extern bool Close_loss_Trades_fast = true; extern string Close_loss = "true=Yes/false=No"; Code:
//Sicherheits-Close bool CLTF = (Close_loss_Trades_fast); double OP = OrderProfit(); Code:
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP<F_MA && F_MA<M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP<F_MA && OP<0.0)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP>F_MA && F_MA>M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP>F_MA && OP<0.0)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} |
|
|||
Aloha.
Versuch schon seit einiger Zeit zu vermeiden, dass er in Trends einsteigt, die schon zu Ende sind. Kommt immer wieder vor, dass der Kurs schon ne andere Richtung einschlägt, laut Bar1 die Bedingungen für die alte Richtung aber noch gegeben sind. Bisher hab ich ihn prüfen lassen, ob auch bei Bar0 der Kurs noch über den GDs ist. Bzw. ob die GDs Bar0 noch so sind wie bei Bar1. Allerdings dürfte das wohl nicht optimal sein, weils ja hin und her gehen kann. Wärs vielleicht besser, wenn geprüft wird, ob Close Bar0 auch über dem schnellsten GD Bar1 ist? Entsprechend entgegensetzt bei Sells. Weiß es alles nicht so richtig. Einfache GDs mit 3, 6, 10 im H1 scheinen einigermaßen zu funktionieren. |
|
|||
Hallo.
Ich will was versuchen, um Verluste wesentlich kleiner zu halten. Er soll einfach in beide Richtungen ne Order öffnen, 1x Buy, 1x Sell. Die, die zuerst im minus und bei der der Close Bar1 über/unter dem schnellsten GD (F_MA1) ist, soll geschlossen werden. Ansonsten wird aus- und eingestiegen (Einstieg wie gesagt Long und Short gleichzeitig) wie zuvor. Also wenn z.B. nen Long Signal kommt: einen Buy und einen Sell öffnen wenn -Close Bar0 & Close Bar1 > F_MA > M_MA > S_MA Jetzt mal angenommen das Long-Signal war nen Fehlsignal und es geht stattdessen nach unten: Long/Buy schließen wenn -Close Bar1 < F_MA & Order_Profit < 0.0 Code:
//Kurse double CP0 = iClose(Symbol(), TimeFrame, 0); double CP1 = iClose(Symbol(), TimeFrame, 1); //GDs double F_MA = iMA(Symbol(), TimeFrame, Fast_Moving_Average, GD_Shift, GD_Type, PRICE_CLOSE, 1); double M_MA = iMA(Symbol(), TimeFrame, Middle_Moving_Average, GD_Shift, GD_Type, PRICE_CLOSE, 1); double S_MA = iMA(Symbol(), TimeFrame, Slow_Moving_Average, GD_Shift, GD_Type, PRICE_CLOSE, 1); //-------------------------------------------------------------------------------------------------------------- //Check position IsInvested = false; for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) IsInvested=true;}} //------------------------------------------------------------------------------------------------------------- //Open Trade if (!IsInvested){ if (TC>F && TC<T && S<=MS && CP0>F_MA && CP1>F_MA && F_MA>M_MA && M_MA>S_MA) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue); if (TC>F && TC<T && S<=MS && CP0<F_MA && CP1<F_MA && F_MA<M_MA && M_MA<S_MA) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);} //------------------------------------------------------------------------------------------------------------- //Close Trade if (IsInvested){ for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP1<F_MA && F_MA<M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP1<F_MA && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP1>F_MA && F_MA>M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP1>F_MA && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} |
|
|||
Allerdings gibts ja ein logisches Problem: Dass, wenn die Verlustposi geschlossen wurde, er gleich ne Neue in die selbe Richtung aufmachen würde. Also müsste er nur ne Order abgeben, wenn beim jeweiligen WP gerade gar keine offen ist (und die sonstigen Bedingungen natürlich auch erfüllt sind).
|
|
|||
Hallo.
Eine stark veränderte Version. In meinem Strategietester gibts immer nur Fehlermeldungen. Wenns nix ausmacht... |
|
|||
war mein traum..........
Zitat:
haloo , versuche deine ratschläge ,zu verfolgen.......zurückblickend....... und sehe ,dass du enorm viel wissen,mut,zeit (kapital ? ) investierst in diesem Ganzen........... Vor vielen Jahren hatte ich auch von dem GETRÄUMT(vollautomatisches Handeln.., damals gab's auch schon solche mutige wie du....., die sich auch mit solchen codes und Buchstaben auskennen...wie oben........ Heute träume ich immer noch davon....., aber ich lesen gerade von deinen..und anderen.....Berichte....., dass es extrem schwierig ist das RICHTIGE zu finden.......eben eine Geldmaschine...., die mit wenigen klicks einfach das Tut , wofür wir es einsetzen............ Trotzdem meine Frage....gibt's jemand auf dem man sich verlassen kann.., der sowas ( EA ) in meinem Meta trader system ( MQ4 ) installieren würde..? |
|
|||
verluste seit jahren.....
Zitat:
wie bereit's erwähnt ,versuche deine Berichte zu verfolgen......., dein Versuch in beide Richtungen einzusteigen..habe ich auch schon mehrfach versucht,jedoch ohne EA , einfach so mit der normalen Handelsplattform...,klar wie gesagt...., mein wunsch war es auch ......einfach die Richtige oder den Richtigen Roboter zu finden.....und loslassen......., um sich anderen Sachen zu konzentrieren......., NUN will ich es zum letzten MAL versuchen.......Kann mir da jemand helfen? Ich würde auch z.B. irgendwo hinfahren...,installieren lassen...,ein Paar tage Testen und dann direkt aufs Handeln probieren ev.mit dem der das installieren würde....., gibt's sowas....? Ganz klar, dass ich das honorieren werde,das ist kein thema...., bin mal überrascht...... |
|
|||
Für nen Auftrag machst Du besser nen extra Fred auf.
Erst mal muss man nen EA/Bot haben, der überhaupt Gewinne macht. Und dann muss man ruhige Tage erwischen, an denen es möglichst keine gravierenden News geben wird. Ist jedenfalls meine Erfahrung nach ein paar Monaten live. |
|
|||
Hallo.
Richtig so? (wie heißt es doch oft:Probieren geht über Studieren ) Code:
//open Long & Short extern bool Open_long_and_Short = true; Code:
//Open Long & Short Abkürzung bool OLAS = (Open_long_and_Short); Code:
//Open Trade if (!IsInvested){ if (TC>F && TC<T && S<=MS && CP0>F_MA && CP1>F_MA && F_MA>M_MA && M_MA>S_MA) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue); if (OLAS=true && TC>F && TC<T && S<=MS && CP0>F_MA && CP1>F_MA && F_MA>M_MA && M_MA>S_MA) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red); if (TC>F && TC<T && S<=MS && CP0<F_MA && CP1<F_MA && F_MA<M_MA && M_MA<S_MA) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red); if (OLAS=true && TC>F && TC<T && S<=MS && CP0<F_MA && CP1<F_MA && F_MA<M_MA && M_MA<S_MA) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);} //------------------------------------------------------------------------------------------------------------- //Close Trade if (IsInvested){ for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP1<F_MA && F_MA<M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP0<CP1 && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((CP1>F_MA && F_MA>M_MA) || (CAA=true && TC>CA) || (CLTF=true && CP0>CP1 && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} //------------------------------------------------------------------------------------------------------------- return(0);} |
Lesezeichen |
Stichworte |
expert advisor, gleitender durchschnitt, mql4, programmierung, programmierung metatrader, programmierung mql4, trading |
|
|