MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1694

 
Aleksei Stepanenko # :

Bunun neden yapıldığını bilmiyorum, özünde bir Boole işlevi.

Bunun gibi bir şey:

Enum'da öğeler sıfırdan başlar, yani Ok=0 ,AllocError=1

yani GetRepeat, 0 veya 1 döndürür

sırasıyla ! GetRepeat, dönüş değerinin olumsuzlanmasıdır

0 yanlış, 1 doğru


kafanı kırabilirsin

Kesinlikle!)) Teşekkürler Alexey!

 
Benim için zevkti :)
 

Güzel gün!!!

Burada, bir siparişler tablosunun ortalama fiyatını hesaplamak ve bunu grafikte görüntülemek için bir fonksiyon bulunmaktadır. Izgara kapatıldıktan sonra orta çizgiyi temsil eden yatay çizgiler kaldırılmaz.

Siparişler tablosu kapatıldıktan sonra bu satırların silinmesi için bir fonksiyon eklemeye yardımcı olun. Teşekkürler!!!

 //+----------------------------------------------------------------------------+
//| Расчет среденй цены (0)-buy (1)-sell ()-all                                |
//+----------------------------------------------------------------------------+
double GetAveragePrice( int ot=- 1 )
  {
   double order_lots = 0 , order_price = 0 , avg_price = 0 ;
     {
       for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
        {
         if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
           {
             if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
              {
               if (OrderType()==ot||ot< 0 )
                 {
                  order_lots += OrderLots();
                  order_price += OrderOpenPrice() * OrderLots();
                 }
              }
           }
        }
     }
   avg_price = NormalizeDouble (order_price / order_lots, Digits );

   if ( ObjectFind ( 0 , "AveragePriceLine" + IntegerToString (ot))!= 0 )
       ObjectCreate ( 0 , "AveragePriceLine" + IntegerToString (ot), OBJ_HLINE , 0 , 0 , avg_price);
   else
       ObjectSetDouble ( 0 , "AveragePriceLine" + IntegerToString (ot), OBJPROP_PRICE ,avg_price);
   if (ot== 0 )
      ObjectSet( "AveragePriceLine" + IntegerToString (ot), OBJPROP_COLOR , clrLime );
   if (ot== 1 )
      ObjectSet( "AveragePriceLine" + IntegerToString (ot), OBJPROP_COLOR , clrMagenta );
   return (avg_price);
  }

 
EVGENII SHELIPOV # :

Güzel gün!!!

Burada, bir siparişler tablosunun ortalama fiyatını hesaplamak ve bunu grafikte görüntülemek için bir fonksiyon bulunmaktadır. Izgara kapatıldıktan sonra orta çizgiyi temsil eden yatay çizgiler kaldırılmaz.

Siparişler tablosu kapatıldıktan sonra bu satırların silinmesi için bir fonksiyon eklemeye yardımcı olun. Teşekkürler!!!

Bu burada yapılmamalı.

 void OnTick ()
  {
//---
   if ( ObjectFind ( 0 , "AveragePriceLine" + 0 )== 0 &&CountTrade( 0 )< 1 ) //для бай
     { ObjectDelete ( 0 , "AveragePriceLine" + 0 );}
   if ( ObjectFind ( 0 , "AveragePriceLine" + 1 )== 0 &&CountTrade( 1 )< 1 ) //для селл
     { ObjectDelete ( 0 , "AveragePriceLine" + 1 );}

   .....

  }
 
MakarFX # :

Bu burada yapılmamalı.

Makar, OnTick()'i geçersiz kılmak için nasıl bağlanır

 
MakarFX # :

Bu burada yapılmamalı.

Makar, küçük bir dosya değiştirilmiş teşekkürler ve her şey yolunda

 

Lütfen bana söyle.

EA, siparişlerin açılması için başlangıç ve bitiş zamanını belirler. Bu sefer grafikte gösterilecek şekilde yapmak istedim. Şimdiye kadar çalışmıyor. İşte kod. Bana yardım et lütfen!!!

 //-------------------------------------------------------------------+  Команда на открытие первых ордеров в сетке
   if ((UseHour== 1 &&Hour()>=StartTime&&Hour()<=StopTime)||UseHour== 0 )
   ObjectCreate ( 0 , "Начало торговли" , OBJ_VLINE , 0 , 0 , StartTime);
   ObjectSetInteger ( 0 , "Начало торговли" , OBJPROP_COLOR , clrBlue );
   ObjectCreate ( 0 , "Окончание торговли" , OBJ_VLINE , 0 , 0 , StopTime);
   ObjectSetInteger ( 0 , "Окончание торговли" , OBJPROP_COLOR , clrBlue );
     {
       if (CountTrade( 0 )== 0 && CountTrade( 1 )== 0 && TradeSignal()== 0 )
         SendFirsOrder( 0 );
       if (CountTrade( 1 )== 0 && CountTrade( 0 )== 0 && TradeSignal()== 1 )
         SendFirsOrder( 1 );
     }
 
EVGENII SHELIPOV # :

Lütfen bana söyle.

EA, siparişlerin açılması için başlangıç ve bitiş zamanını belirler. Bu sefer grafikte gösterilecek şekilde yapmak istedim. Şimdiye kadar çalışmıyor. İşte kod. Bana yardım et lütfen!!!

StartTime ve StopTime değişkenlerini göster
 
MakarFX # :
StartTime ve StopTime değişkenlerini göster
 extern string                TIME                           = "Настройки времени" ;
extern int                   UseHour                        = 1 ;         // Торговля в установленное время "0"-ВЫКЛ, "1"-ВКЛ
extern int                   StartTime                      = 1 ;         // Начало торговли
extern int                   StopTime                       = 19 ;         // Окончание торговли
 
EVGENII SHELIPOV #:
   if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0)
     {
      if(ObjectFind(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE))!=0)
        {
         ObjectCreate(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StartTime*3600),0);
         ObjectSetInteger(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue);
         ObjectCreate(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StopTime*3600),0);
         ObjectSetInteger(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue);
        }
      if(CountTrade(0)==0 && CountTrade(1)==0 && TradeSignal()==0)
         SendFirsOrder(0);
      if(CountTrade(1)==0 && CountTrade(0)==0 && TradeSignal()==1)
         SendFirsOrder(1);
     }