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

1. Ich sehe im Chart keine Order, daher würde keine Order auch geschlossen werden oder?
2. Müsste der Code nicht wie folgt sein:
Close[0] < iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1)))

D.h. aktueller Close ist kleiner als iMA shift 1 und nicht 0.
shift - Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago).
Daher versuch das mal mit folgenden Code Snippet von dir was ich etwas leicht angepasst habe:
PHP-Code:
extern int MagicNumber=10001;
extern double Lots =0.1;
extern double StopLoss=99999;
extern double TakeProfit=99999;
extern int TrailingStop=0;
extern int Slippage=3;
int timeframe
static 
datetime update 0
  
double MyPoint=Point;

int init() 
        { 
    
timeframe Period(); 
  if(
Digits==|| Digits==5MyPoint=Point*10;
   
        return(
0); 
        }
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{

if(
update == || TimeLocal() > update Period() * 60
              { 

  
  
double TheStopLoss=0;
  
double TheTakeProfit=0;
  if( 
TotalOrdersCount()==
  {
     
int result=0;
  }
  
  for(
int cnt=0;cnt<OrdersTotal();cnt++)
     {
      
OrderSelect(cntSELECT_BY_POSMODE_TRADES);
      if(
OrderType()<=OP_SELL &&   
         
OrderSymbol()==Symbol() 
         
//&&
         //OrderMagicNumber()==MagicNumber 
         
)  
        {
         if(
OrderType()==OP_BUY)  
           {
              if((
Close[0]<iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1))) //here is your close buy rule
              
{
                   
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
              }
            if(
TrailingStop>0)  
              {                 
               if(
Bid-OrderOpenPrice()>MyPoint*TrailingStop)
                 {
                  if(
OrderStopLoss()<Bid-MyPoint*TrailingStop)
                    {
                     
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
                     return(
0);
                    }
                 }
              }
           }
         else 
           {
            if(
TrailingStop>0)  
              {                 
               if((
OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((
OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
                     return(
0);
                    }
                 }
              }
           }
        }
     }

 
update TimeLocal()- TimeLocal()%timeframe;  
            }
            

   return(
0);
}

int TotalOrdersCount()
{
  
int result=0;
  for(
int i=0;i<OrdersTotal();i++)
  {
     
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
     if (
OrderMagicNumber()==MagicNumberresult++;

   }
  return (
result);