[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 161

 
Mopo3:

Ja, es heißt "das Spiel lernen", d. h. die Sprache :)


Nun, ich erinnere mich, dass das Prinzip auf der Tatsache beruht, dass es Zeiten von 1min. und dann zu sehen, einen Zeitraum von 20min. Daten werden nur von 20 Bars für 1 Minute genommen....

der Punkt ist... dann habe ich nicht zweimal darüber nachgedacht...))

 

Leute! Schauen Sie sich den MA-Trendwechsel an, kann jemand helfen? https://www.mql5.com/ru/forum/131277/page159

 
Wenn es nicht schwierig ist, zu beraten, welcher Zeitraum sollte für Murray Ebenen gesetzt werden, so dass es nicht liegen oder für jeden TF seinen Zeitraum. Wenn sie einen eigenen Zeitraum hat, welche?
 

Guten Tag!!!!!

Können Sie mir sagen, wo ist der Fehler...... beim Kompilieren keine Fehler, aber nicht den Handel in der Tester-Log eSvechi+MA AUDUSD,H1: OrderSend Fehler 131 und was ist der Grund - ich verstehe nicht

//+------------------------------------------------------------------+
//|                                                   eSvechi+MA.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


//---- input parameters
extern int       MA=13;
extern double    Lots=0.01;
extern int       StopLoss=100;
extern int       TakeProfit=100;
extern int       MagicNumber=501;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol() && OrderCloseTime() >= Time[0] && OrderType() == Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

        // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

        //Рассчитываем значения средних на 0-ом и 1-м баре
    double MA_0 =iMA(NULL, 0, MA,0,1,1,0);    
    double MA_1 =iMA(NULL, 0, MA,0,1,1,1);
    
 //-------------открытие позиции Buy покупка-----------------
 //сравниваем на 1-м баре цену закр. и откр. между собой и с МА, на 0-м баре откр. меньше МА закр. больше МА
    if(
       (Open[0+1]<Close[0+1])&& 
       (Close[0+1]<MA_1)&&
       (Open[0]<MA_0)&&
       (Close[0]>MA_0)
      )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    //-------------Открытие позиции Sell продажа----------------   
    if(
       (Open[0+1]>Close[0+1])&& 
       (Close[0+1]>MA_1)&&
       (Open[0]>MA_0)&&
       (Close[0]<MA_0)
      )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+

ERR_INVALID_TRADE_VOLUME 131 Falsches Volumen, Fehler in der Volumengranulation. Sie müssen alle Handelsversuche abbrechen und die Programmlogik ändern.

Die Logik scheint korrekt zu sein.............................................

 
igrok2008:

Guten Tag!!!!!

Können Sie mir sagen, wo ist der Fehler...... beim Kompilieren keine Fehler, aber nicht den Handel in der Tester-Log eSvechi+MA AUDUSD,H1: OrderSend Fehler 131 und was ist der Grund - ich verstehe nicht

ERR_INVALID_TRADE_VOLUME 131 Falsches Volumen, Fehler in der Volumengranulation. Sie müssen alle Handelsversuche abbrechen und die Programmlogik ändern.

Die Logik scheint korrekt zu sein.............................................


Lots sollten nicht kleiner sein als (+ eine Art Vielfaches von) MarketInfo(Symbol(), MODE_MINLOT);

Bei vielen Programmen von Händlern liegt der Wert bei 0,1, aber bei Ihrem Programm ist er 10 Mal niedriger.

 
ilunga:


Lots müssen mindestens (+ eine Art Vielfaches von) MarketInfo(Symbol(), MODE_MINLOT) sein;

Viele Programme von Händlern haben 0,1, während Sie 10 Mal weniger haben.

UND ALLE !!!! Der ganze Haken ist dies!!!!!!!!! .......... Wie sieht es mit kleinen Depots von 5-10 Böcken aus???????
 
ilunga:


Lots müssen mindestens (+ eine Art Vielfaches von) MarketInfo(Symbol(), MODE_MINLOT) sein;

Viele Programme von Händlern haben 0,1, während Sie 10 Mal weniger haben.

Lot auf 0.1 geändert, trotzdem kein Handel
 
igrok2008:
Ich habe mein Los auf 0,1 geändert, aber es funktioniert immer noch nicht.


lief auf InterBank, alles funktioniert auch mit 0,01

Alpari bei 0,01 gibt Fehler 131, bei 0,1 funktioniert es

 
ilunga:


lief auf InterBank, alles funktioniert auch mit 0,01

Alpari bei 0,01 gibt Fehler 131, bei 0,1 funktioniert es

genau Alpari auf Demokonto und Test funktioniert NICHT!!!!! terminal mt4 build 229........ prompt!!!!!!
 
igrok2008:

Guten Tag!!!!!

Können Sie mir sagen, wo ist der Fehler...... beim Kompilieren keine Fehler, aber nicht den Handel in der Tester-Log eSvechi+MA AUDUSD,H1: OrderSend Fehler 131 und was ist der Grund - ich verstehe nicht

ERR_INVALID_TRADE_VOLUME 131 Falsches Volumen, Fehler in der Volumengranulation. Sie müssen alle Handelsversuche abbrechen und die Programmlogik ändern.

Die Logik scheint korrekt zu sein.............................................

Normalisieren Sie Stop Loss, Take Profit und Open Price mit NormalizeDouble