Einzelnen Beitrag anzeigen
  #244 (permalink)  
Alt 23.08.16
MA-EA MA-EA ist offline
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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);}}}}
Hoffe, ich hab verständlich erklärt, was ich gerne hätte. :wonder: