Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 14.12.15
Adlerauge Adlerauge ist offline
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Hallo TLO,

ich habe zunächst einmal versucht, Deinen Order-Wechsel-Code umzusetzen.
Dazu habe ich einfach mal einen Indikator genommen, in diesem Fall den Momentum, und versucht den Code so zu schreiben, dass er long geht, wenn der Momentum über 100 geht, und dann short geht sobald der Momentum wieder und 100 fällt.

Leider funktioniert es noch nicht .....
hier ist der ganze Quellcode:

extern double HandelsLots = 0.01;
extern double StopLoss = 100;
extern double TakeProfit = 50;
extern int PeriodMomentum = 14;

double Momentum;

int MagicNumber;
int Zaehler_History;

bool LastTradeShort;
bool LastTradeLong;
bool LongShortWechsel;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
Momentum = iCustom(NULL,0,"Momentum",PeriodMomentum,0,1);
return(0);
}

//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()

//Auf einen Long- folgt immer ein Short-Trade und umgekehrt
{
if (LongShortWechsel==true)
{
for(Zaehler_History=OrdersHistoryTotal();Zaehler_H istory>=0;Zaehler_History--)//
{
OrderSelect(Zaehler_History,SELECT_BY_POS,MODE_HIS TORY);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber)
continue;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
LastTradeLong=true;
LastTradeShort=false;
break;
}
if(OrderType()==OP_SELL)
{
LastTradeLong=false;
LastTradeShort=true;
break;
}

}
}
}

// Erste Order

if (OrdersTotal() == 0)
if (Momentum > 100)
if (OrdersHistoryTotal()==0)
{
OrderSend(Symbol(),OP_BUY,HandelsLots,Ask,2,Ask-StopLoss*Point,Ask+TakeProfit*Point,NULL,0,0,Green );
}

if (OrdersTotal() == 0)
if (Momentum < 100)
if (OrdersHistoryTotal()==0)
{
OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,2,Bid+S topLoss*Point,Bid-TakeProfit*Point,NULL,0,0,Red);
}

// Nachfolgende Orders

if (OrdersTotal() == 0)
if (Momentum > 100)
if (LastTradeLong=false)
if (LastTradeShort=true)
{
OrderSend(Symbol(),OP_BUY,HandelsLots,Ask,2,Ask-StopLoss*Point,Ask+TakeProfit*Point,NULL,0,0,Green );
}

if (OrdersTotal() == 0)
if (Momentum < 100)
if (LastTradeShort=false)
if (LastTradeLong=true)
{
OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,2,Bid+S topLoss*Point,Bid-TakeProfit*Point,NULL,0,0,Red);
}
}

//..VG.... Adlerauge