Hatalar, hatalar, sorular - sayfa 1464

 

uyarı, hata anlamına gelmez.

Bu hata, bir veri türü uyuşmazlığından kaynaklanmaktadır.

ObjectGet çift döndürür

ve değeri siz atarsınız

tarih saat

böyle dene

 datetime TL_TimeLow2=( datetime )ObjectGet( "TL_Support" ,OBJPROP_TIME2); // устанавливаем вторую координату времени линии поддержки
   datetime TL_TimeLow1=( datetime )ObjectGet( "TL_Support" ,OBJPROP_TIME1); // устанавливаем первую координату времени линии поддержки
   datetime TL_Time1=( datetime )ObjectGet( "TL_Buy" ,OBJPROP_TIME1);       // устанавливаем первую координату времени линии Buy
   datetime TL_Time2=( datetime )ObjectGet( "TL_Buy" ,OBJPROP_TIME2);   // устанавливаем вторую координату времени линии Buy   

 
Evet, teşekkürler, zaten kendim çözdüm ve yaptım, ancak danışmanım Line_Buy çizgisini geçerken hala siparişleri doğru açmıyor Ve Line_Sell zaten her şeyi kontrol etti, her şey doğru görünüyor, ancak siparişler açılmıyor ve kapanmıyor kavşak anı, biri bana söyleyebilir mi
 //+------------------------------------------------------------------+
//|                                                      фрактал.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
#property strict
input color Resistance_Color=Red;
input ENUM_LINE_STYLE Resistance_Style;
input int Resistance_Width= 1 ;
input color Support_Color=Red;
input ENUM_LINE_STYLE Support_Style;
input int Support_Width= 1 ;
extern double Lots      = 0.1 ;
extern int TakeProfit   = 50 ;
extern int   StopLoss    = 50 ;
extern int ProfitSeriya = 5 ;
extern int Profit       = 5 ;
//extern int Step         = 50;
extern int filtr        = 4 ;
extern int slippage     = 5 ;
double TP,price,lastlot,Pr,SL;
int ticket,Magic= 123 ,op;
string TL_Support;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   ObjectDelete ( 0 , "TL_Resistance" ); //удаляем линию сопротевления на текущем графике
   ObjectDelete ( 0 , "TL_Support" );     //удаляем линию поддержки на текущем графике
   ObjectDelete ( 0 , "TL_Buy" );     //удаляем линию поддержки на текущем графике
   ObjectDelete ( 0 , "TL_Sell" );     //удаляем линию поддержки на текущем графике
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---объявление переменных
   
   int n,UpperFractal_1= 0 ,UpperFractal_2= 0 ,LowerFractal_1= 0 ,LowerFractal_2= 0 ;
   double UpperPrice_1= 0 ,UpperPrice_2= 0 ,LowerPrice_1= 0 ,LowerPrice_2= 0 ,low_1,high_1 ,Line_Buy= 0 ,Line_Sell= 0 ;
   low_1=iLow( Symbol (), PERIOD_CURRENT , 1 );
   high_1=iHigh( Symbol (), PERIOD_CURRENT , 1 );
 
//--- находим индекс бара первого ближайшего верхнего фрактала
   for (n= 0 ; n<( Bars - 1 );n++)
     {
       if ( iFractals ( Symbol (), PERIOD_CURRENT ,MODE_UPPER,n)!= NULL )
         break ;
      UpperFractal_1=n+ 1 ;
      UpperPrice_1=iHigh( Symbol (), PERIOD_CURRENT ,UpperFractal_1);
      
     }
//--- находим индекс бара второго ближайшего верхнего фрактала
   for (n=UpperFractal_1+ 1 ; n<( Bars - 1 );n++)
     {
       if ( iFractals ( Symbol (), PERIOD_CURRENT ,MODE_UPPER,n)!= NULL )
         break ;
      UpperFractal_2=n+ 1 ;
      UpperPrice_2=iHigh( Symbol (), PERIOD_CURRENT ,UpperFractal_2);
     }
//--- находим индекс бара первого ближайшего нижнего фрактала
   for (n= 0 ; n<( Bars - 1 );n++)
     {
       if ( iFractals ( Symbol (), PERIOD_CURRENT ,MODE_LOWER,n)!= NULL )
         break ;
      LowerFractal_1=n+ 1 ;
      LowerPrice_1=iLow( Symbol (), PERIOD_CURRENT ,LowerFractal_1);
     }
//--- находим индекс бара второго ближайшего нижнего фрактала
   for (n=LowerFractal_1+ 1 ; n<( Bars - 1 );n++)
     {
       if ( iFractals ( Symbol (), PERIOD_CURRENT ,MODE_LOWER,n)!= NULL )
         break ;
      LowerFractal_2=n+ 1 ;
      LowerPrice_2=iLow( Symbol (), PERIOD_CURRENT ,LowerFractal_2);
     }
     
//-- Этап 1. Определение временного значения экстремума на  таймфрейме:     
//--- определение времени фракталов
   datetime UpFractalTime_1=iTime( Symbol (), PERIOD_CURRENT ,UpperFractal_1);
   datetime UpFractalTime_2=iTime( Symbol (), PERIOD_CURRENT ,UpperFractal_2);
   datetime LowFractalTime_1=iTime( Symbol (), PERIOD_CURRENT ,LowerFractal_1);
   datetime LowFractalTime_2=iTime( Symbol (), PERIOD_CURRENT ,LowerFractal_2);
   datetime time=iTime( Symbol (), PERIOD_CURRENT , 0 );
   datetime time_1=iTime( Symbol (), PERIOD_CURRENT , 1 );
   datetime time_2=iTime( Symbol (), PERIOD_CURRENT , 2 );
   

//--- создание линии поддержки

   // ObjectCreate(0,"TL_Support",OBJ_TREND,0,LowFractalTime_2,LowerPrice_2,
               //  LowFractalTime_1,LowerPrice_1);
   ObjectCreate ( 0 , "TL_Buy" , OBJ_TREND , 0 ,LowFractalTime_2,LowerPrice_2,
                time_1,high_1);
               
//--- цвета линии поддержки             
   ObjectSet( "TL_Buy" , OBJPROP_COLOR , clrYellow );                          
   ObjectSet( "TL_Support" , OBJPROP_COLOR ,Support_Color);
   // ObjectSet("TL_Support",OBJPROP_STYLE,Support_Style);
   // ObjectSet("TL_Support",OBJPROP_WIDTH,Support_Width);
//--- создание линии сопротивления
   // ObjectCreate(0,"TL_Resistance",OBJ_TREND,0,UpFractalTime_2,UpperPrice_2,
             //    UpFractalTime_1,UpperPrice_1);
   ObjectCreate ( 0 , "TL_Sell" , OBJ_TREND , 0 ,UpFractalTime_2,UpperPrice_2,
                time_1,low_1);
//--- цвета линии сопротивления                
   ObjectSet( "TL_Sell" , OBJPROP_COLOR , clrYellow );                          
   ObjectSet( "TL_Resistance" , OBJPROP_COLOR ,Resistance_Color);
   // ObjectSet("TL_Resistance",OBJPROP_STYLE,Resistance_Style);
   // ObjectSet("TL_Resistance",OBJPROP_WIDTH,Resistance_Width);
//--- перерисовка линии поддержки
//--- записываем значения временных координат линии поддержки в переменные
   // string TL_Suppor=(string)TL_Support;
   datetime TL_TimeLow2=( datetime )ObjectGet( "TL_Support" ,OBJPROP_TIME2); // устанавливаем вторую координату времени линии поддержки
   datetime TL_TimeLow1=( datetime )ObjectGet( "TL_Support" ,OBJPROP_TIME1); // устанавливаем первую координату времени линии поддержки
   datetime TL_Time1=( datetime )ObjectGet( "TL_Buy" ,OBJPROP_TIME1);       // устанавливаем первую координату времени линии Buy
   datetime TL_Time2=( datetime )ObjectGet( "TL_Buy" ,OBJPROP_TIME2);   // устанавливаем вторую координату времени линии Buy     
//---если координаты линии не совпадают с текущими
   if (TL_TimeLow2!=LowFractalTime_1 && TL_TimeLow1!=LowFractalTime_2)
   /*вторую координату времени линии поддержки не равно второму времени N-точки привязки
    и первая координату времени линии поддержки не равно первому времени N-точки привязки*/
   
     {
       //---удаляем линию
       ObjectDelete ( 0 , "TL_Support" );
     }
   if ( TL_Time2!=time_1 )
     /*вторую координату времени линии поддержки не равно второму времени N-точки привязки*/
     {
       //---удаляем линию
       ObjectDelete ( 0 , "TL_Buy" );
     }  
//--- перерисовка линии сопротивления
//--- записываем значения временных координат линии сопротивления в переменные
   datetime TL_TimeUp2=( datetime )ObjectGet( "TL_Resistance" ,OBJPROP_TIME2);
   datetime TL_TimeUp1=( datetime )ObjectGet( "TL_Resistance" ,OBJPROP_TIME1);
   datetime TL_TimeS1=( datetime )ObjectGet( "TL_Sell" ,OBJPROP_TIME1);
   datetime TL_TimeS2=( datetime )ObjectGet( "TL_Sell" ,OBJPROP_TIME2);
//--- если координаты линии не совпадают с текущими
   if (TL_TimeUp2!=UpFractalTime_1 && TL_TimeUp1!=UpFractalTime_2)
     {
       //--- удаляем линию
       ObjectDelete ( 0 , "TL_Resistance" );
     }
     if (TL_TimeS2!=time_1 )
     {
       //--- удаляем линию
     ObjectDelete ( 0 , "TL_Sell" );
     }  
//--- контроль загруженности баров в истории
//--- если на M15 не найден хотя бы один бар
   if (UpperFractal_1==- 1 || UpperFractal_2==- 1
      || LowerFractal_1==- 1 || LowerFractal_2==- 1 )
     {
       Alert ( "Для корректной работы недостаточно загружена история!" );
     }
     
 
   
   Line_Sell= NormalizeDouble (ObjectGetValueByShift( "TL_Sell" , 0 ), 5 );
   Line_Buy= NormalizeDouble (ObjectGetValueByShift( "TL_Buy" , 0 ), 5 );
   Print ( "Line_Buy:  " + DoubleToStr( Line_Buy, 5 )   +   " ,  Line_Sel: "   + DoubleToStr( Line_Sell, 5 )   );  
//поверить есть ли открытые ордера Buy. если нет открываем ордер когда цена будет выше линии Buy
   if (CountBuy()== 0 && Line_Buy<Ask)       
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask,slippage, 0 , 0 , "" ,Magic, 0 ,Blue);
//поверить есть ли открытые ордера Buy. если есть закрываем ордер когда цена будет ниже линии Sell                   
     if (CountBuy()== 1 && Line_Sell>Bid )    
           
        {
         for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
           {
             if ( OrderSelect (i,SELECT_BY_POS))
              {
               if (OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                   bool a=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Black);
              }
           }
        }
     
   
   if (CountSell()== 0 && Line_Sell>Bid )  
    
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid,slippage, 0 , 0 , "" ,Magic, 0 ,Red);
     
   
   if (CountSell()== 1 && Line_Buy<Ask)
        
        {
         for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
           {
             if ( OrderSelect (i,SELECT_BY_POS))
              {
               if (OrderMagicNumber()==Magic && OrderType()==OP_SELL)

                   bool x=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Black);
              }
           }
        }
     

  }
//+------------------------------------------------------------------+



int CountBuy()
  {

   int count= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return (count);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountSell()
  {

   int count= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i,SELECT_BY_POS))
        {
         if (OrderSymbol()== Symbol () && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return (count);
  }

//+------------------------------------------------------------------+

 

Sevgili MQL4 geliştiricileri!

Dün gece ilginç bir sorun ortaya çıktı. Terminal ekranında, çubuklar ızgara çizgileriyle eşleşmiyor.

Çubuklar değil, mumlar - aynı şey. Tüm zaman dilimleri. Terminali sildim, kişisel hesaptan yeni bir tane indirdim

- aynısı. Alpari'deki danışmanları aradım, onlardan zaten kurulu bir terminal aldım, başlattım - aynı

en. Kaspersky, her şeyin yolunda olduğunu, "hiçbir tehdit olmadığını" söylüyor. 4 grid periyodu için 5 bar periyodu vardır, yani.

bar periyodu, grid periyodunun 0,75'ine eşittir. Nasıl düzeltilir?

Dosyalar:
qq3.jpg  161 kb
 
realgentleman :

Sevgili MQL4 geliştiricileri!

Dün gece ilginç bir sorun ortaya çıktı. Terminal ekranında, çubuklar ızgara çizgileriyle eşleşmiyor.

Çubuklar değil, mumlar - aynı şey. Tüm zaman dilimleri. Terminali sildim, kişisel hesaptan yeni bir tane indirdim

- aynısı. Alpari'deki danışmanları aradım, onlardan zaten kurulu bir terminal aldım, başlattım - aynı

en. Kaspersky, her şeyin yolunda olduğunu, "hiçbir tehdit olmadığını" söylüyor. 4 grid periyodu için 5 bar periyodu vardır, yani.

bar periyodu, grid periyodunun 0,75'ine eşittir. Nasıl düzeltilir?

Terminal yapınız nedir, hangi işletim sistemi, bit derinliği?

Hangi sembol ve sunucuda oynanır?

Monitör ayarlarınız nelerdir?

Grafik ayarlarını değiştirdiniz mi?

 
Belki birisi diske yazarken ve MQL4/MQL5 okurken hangi tür txt veya csv dosyalarının daha hızlı olduğunu kontrol etti veya fark etti?
 

Sanal makinelerde Linux sistemlerinde mt4 proxy ayarları gerektiriyor oraya ne gireceğimi bilmiyorum herşey çalışıyor ve NAT üzerinden bağlı

diğer tüm programlar proxy olmadan çalışır ve sessizce ağa gider ... Ne yapmalıyım? mt4 nasıl kurulur...

 
Vladimir Pastushak :

Sanal makinelerde Linux sistemlerinde mt4 proxy ayarları gerektiriyor oraya ne gireceğimi bilmiyorum herşey çalışıyor ve NAT üzerinden bağlı

diğer tüm programlar proxy olmadan çalışır ve sessizce ağa gider ... Ne yapmalıyım? mt4 nasıl kurulur...

Sanal makine ayarlarında ağ bağdaştırıcısı için köprülü seçeneği mevcut mu?
 

Posta (Skype) eklemek nasıl mümkün olur?

#özellik bağlantısı

(sadece posta ise, bağlantı tıklandığında etkin değildir)

 
Vasyl Nosal :

Posta (Skype) eklemek nasıl mümkün olur?

#özellik bağlantısı

(sadece posta ise, bağlantı tıklandığında etkin değildir)

Şimdi aldım ve denedim:

 #property link        "mailto:мой_адрес@gmail.com"

İşler ;)

 
Stanislav Korotky :
Sanal makine ayarlarında ağ bağdaştırıcısı için köprülü seçeneği mevcut mu?
hayır öyle bir şey yok...