Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 11.03.13
Hoschie Hoschie ist offline
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Hi,



du kannst hier folgenden entwickelten TrailingEA verwenden.

PHP-Code:

extern double TrailingStop 
15.0;
extern double TrailingStep 2.0;
extern bool Trailing TRUE;
extern int MagicNumber = -1;
double points;

int init() {
   
points Point;
   if (
Digits == || Digits == 3points 10.0 points;
   return (
0);
}

void start() {
   if (
TrailingStop 0.0 && OrdersTotal() > 0MoveTrailing();
}

void MoveTrailing() {
   
double open_price;
   
double stoploss;
   
double price;
   
double stoplevel MarketInfo(Symbol(), MODE_STOPLEVEL) * Point points;
   
double valmax MathMax(TrailingStopstoplevel);
   for (
int pos OrdersTotal() - 1pos >= 0pos--) {
      if (
OrderSelect(posSELECT_BY_POSMODE_TRADES) == TRUE) {
         if (
OrderMagicNumber() == MagicNumber || MagicNumber && OrderSymbol() == Symbol()) {
            
open_price OrderOpenPrice();
            
stoploss OrderStopLoss();
            while (
IsTradeContextBusy()) Sleep(500);
            
RefreshRates();
            if (
OrderType() == OP_BUY) {
               
price ND(Bid valmax points);
               if (
Bid open_price valmax points || !Trailing && price >= stoploss TrailingStep points && valmax points valmax points) {
                  if (!
OrderModify(OrderTicket(), OrderOpenPrice(), priceOrderTakeProfit(), 0Blue))
                     if (!
IsOptimization()) Print("BUY OrderModify Error " GetLastError());
               }
            }
            if (
OrderType() == OP_SELL) {
               
price ND(Ask valmax points);
               if (
Ask open_price valmax points || !Trailing && price <= stoploss TrailingStep points || stoploss == 0.0 && valmax points valmax points) {
                  if (!
OrderModify(OrderTicket(), OrderOpenPrice(), priceOrderTakeProfit(), 0Red))
                     if (!
IsOptimization()) Print("Sell OrderModify Error " GetLastError());
               }
            }
         }
      }
   }
}

double ND(double val) {
   return (
NormalizeDouble(valDigits));