Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1157

 

Lütfen yardım edin - bir kod parçası var


   if ( Bars <=RSIPeriod) return ( 0 );
   if (TF!= 0 )
   {
       string name = WindowExpertName ();
       for (i= 0 ; i< Bars -counted_bars+ 1 ; i++)
      {
         int barIndex = iBarShift ( NULL ,TF, Time [i], false );
         RSIBuffer[i]=       iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 0 ,barIndex);        
         PosBuffer[i]=       iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 1 ,barIndex);
         NegBuffer[i]=       iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 2 ,barIndex);
         RSI_Up_Buffer[i]=   iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 3 ,barIndex);
         RSI_Down_Buffer[i]= iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 4 ,barIndex);
         
         Worms_Up[i]=         iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 5 ,barIndex);        
         Worms_Down[i]=       iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 6 ,barIndex);
         Delta[i]=           iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 7 ,barIndex);
         Calc[i]=             iCustom ( Symbol (),TF,name,Variant,RSIPeriod,Levl_Up,Levl_Down, 0 , 8 ,barIndex);         
      }
       return ( 0 );
   }


her şey genellikle iyi çalışır, ancak sonra bir hata aldım - yeniden oluşturamıyorum - koddaki hata parantez ile başlıyor Zaman [I]

2017.07.25 21:09:57.266 Worms_UpDn_RSI_OSC_Calc AUDCAD,M15: 'Worms_UpDn_RSI_OSC_Calc.mq4' içinde dizi aralık dışında (104.47)

Hatanın nedenleri nelerdir ve nasıl düzeltilir?
 
Aleksey Vyazmikin :

Lütfen yardım edin - bir kod parçası var



her şey genellikle iyi çalışır, ancak sonra bir hata aldım - yeniden oluşturamıyorum - koddaki hata parantez ile başlıyor Zaman [I]

2017.07.25 21:09:57.266 Worms_UpDn_RSI_OSC_Calc AUDCAD,M15: 'Worms_UpDn_RSI_OSC_Calc.mq4' içinde dizi aralık dışında (104.47)

Hatanın nedenleri nelerdir ve nasıl düzeltilir?

Çubukları Çubuklarla değiştirmeyi deneyin ( Symbol() , TF);

Başka bir zaman diliminden veri alıyorsunuz ve mevcut olandan çubuk sayısını alıyorsunuz, ancak alınanda bunlardan daha az olabilir, bu nedenle hata

 
Vitaly Muzichenko :

Çubukları Çubuklarla değiştirmeyi deneyin (Symbol(), TF);

Başka bir zaman diliminden veri alıyorsunuz ve mevcut olandan çubuk sayısını alıyorsunuz, ancak alınanda bunlardan daha az olabilir, bu nedenle hata


Teşekkür ederim! Bunun yardımcı olacağını düşünüyorum!

 
Andrey Sokolov :

Dikkat, doğru cevap:

Destek Ekibi 2017.07.20 13:37
Metaeditörün en son yapısında derlenmeyen ürünler tabloya eklenemez.

Uzman Danışmanım, son güncellemeden sonra test cihazında görsel olmayan modda çalışmayı durdurdu. Bir şeyi yeniden yapmak zorunda kaldım.

 
Andrey Sokolov :

Selamlar.

Yayılma ile geriye dönük test mümkün mü?


Bu yüzden test cihazında ayarlanmıştır. Yoksa gerçek bir yüzen formaya mı ihtiyacınız var?

 
Alexey Volchanskiy :

Bu yüzden test cihazında ayarlanmıştır. Yoksa gerçek bir yüzen formaya mı ihtiyacınız var?

Gerçek
 
Andrey Sokolov :
Gerçek
Test cihazında gerçek (tarihi) yalnızca MT5'te size sunulacak
 

Tünaydın! Fraktallar üzerine bekleyen emirler vermek için bir Uzman Danışman yazıyorum. Ancak sadece satın alma siparişleri verilir. Nasıl düzeltilir? Ekli Uzman Danışman ve göstergedir.

Dosyalar:
Fractal_1.mq4  13 kb
RFractals.ex4  10 kb
 
scomoroh :

Tünaydın! Fraktallar üzerine bekleyen emirler vermek için bir Uzman Danışman yazıyorum. Ancak sadece satın alma emirleri açılır. Nasıl düzeltilir?

Her şey burada .

 

Merhaba.

İki hatayı düzeltmeye yardımcı olabilir.

1. Bir çubukta 1 sipariş açılmalıdır (artık rastgele açılır)

2. Belirli bir hacimle 1 siparişi doğru şekilde açın (şimdi farklı hacimlerle açılıyor)

Teoride, şimdi danışmanda ayarlandığı gibi (umuyordum), bir barda depozitonun %10'luk bir anlaşması açılmalıdır, ancak bu olmaz.

Teşekkür ederim.

 //+------------------------------------------------------------------+
//|                                                      1237654.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             [url]https://www.mql5.com[/url] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
extern int tf_bar = 0 ; //таймфрейм на котором будет браться значение бара
extern int magic = 123 ;
extern double stop = 0 ;
extern double StopLoss = 0 ;
extern double TakeProfit = 0 ;
extern double Prots= 0.10 ;

int ticket, Symbol ;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int mper[ 10 ]={ 0 , 1 , 5 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 }; //массив таймфрейма
int OnInit ()
  {
//---
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

void OnTick ()
  {
       double Min_Lot= MarketInfo ( Symbol (), MODE_MINLOT ); // Мин. стоим. лотов
       double Step   = MarketInfo ( Symbol (), MODE_LOTSTEP ); //Шаг изменен лотов
       double Free   = AccountBalance ();       // Свободн средства
       double One_Lot= MarketInfo ( Symbol (), MODE_MARGINREQUIRED ); //Стоим.лота
  
   double Lot= MathFloor (Free*Prots/One_Lot/Step)*Step; // Лоты
        
        
        
  
   if ( Close [ 0 ]> Close [ 1 ])
//if (! NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_BUY, magic) ==0) 



{ //запрет неск. сделок на 1 баре
     stop = Ask - StopLoss * Point ;
     ticket= OrderSend ( Symbol (), OP_BUY ,Lot, Ask , 0 , 0 , 0 , "Buy" ,magic, 0 ,Lime);
     
     } //закрываем скобку NumberOfBarOpenLastPos
     
 if ( Close [ 0 ]< Close [ 1 ])   
     
//if (!NumberOfBarOpenLastPos(NULL,mper[tf_bar],OP_SELL, magic)  ==0) 
{ //запрет неск. сделок на 1 баре
     ticket= OrderSend ( Symbol (), OP_SELL ,Lot, Bid , 0 , 0 , 0 , "Sell" ,magic, 0 ,Red);
     
     } //закрываем скобку NumberOfBarOpenLastPos
     return ;
   
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  [url=http://www.kimiv.ru]Автоматизация торговли на финансовых рынках - Главная[/url]                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
 




int NumberOfBarOpenLastPos( string sy= "0" , int tf= 0 , int op=- 1 , int mn=- 1 ) {
   datetime t= 0 ;
  
   int       i, k= OrdersTotal ();

   if (sy== "" || sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++)                                    {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))      {
       if ( OrderSymbol ()==sy)                             {
         if ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) {
           if (op< 0 || OrderType ()==op)                   {
             if (mn< 0 || OrderMagicNumber ()==mn)          {
               if (t< OrderOpenTime ()) t= OrderOpenTime ();
              }}}}}}
   return ( iBarShift (sy, tf, t, True ));}