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

 
Порт-моне тв :

Biri bana yardım edecek mi?

Şekillerin isimleriyle uğraşmamak için nokta tarihleri en yeni olan şekli bulabilirsiniz. Ve sonra, böyle bir rakam bulunduğunda, soru zaten sizin için: hangi olay izlenmelidir? Yatay kenarları çaprazlama, dikey, yukarıdan aşağıya, aşağıdan yukarıya.

OnChartEvent içinde gözlemlemeniz gerekir.

 

Tünaydın!

Her nasılsa daha önce, monitörde gösterge değerlerini görüntülemek için koda bir sınırlama (limit) ekleyebildim. Bu göstergeyle hiçbir şey çalışmaz. Limiti koda koymama yardım eder misin? Rica ederim!

Teşekkür ederim!

Dosyalar:
Tipu_MACD.mq4  18 kb
 

Merhaba. Lütfen bana söyle.

Baz (birinci) para biriminin dolar olduğu ve bir noktanın maliyetinin sabit olmadığı ve fiyatlara bağlı olduğu birkaç ALIŞ pozisyonunun döviz çiftleri için toplam sıfır kâra sahip olacağı Teklif fiyatı nasıl hesaplanır?

Doların kote (ikinci) para birimi olduğu ve böyle bir fonksiyondan türetilen sabit bir pip değerinin olduğu çiftler için,

 double Null_BUY(){ 
   double null= 0 ; double summ_count= 0 ; double lots_count= 0 ; double position_count= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)){
         if (OrderSymbol() == Symbol () ){
             if (OrderType()==OP_BUY ){
               position_count=Bid-((OrderProfit()+OrderSwap()+OrderCommission()) / OrderLots()*MarketInfo( Symbol (), MODE_TICKVALUE))* Point ; 
               summ_count+=position_count*OrderLots();
               lots_count+=OrderLots();
            }
         }
      }
   }
   if (lots_count!= 0 ) null= NormalizeDouble (summ_count/lots_count, Digits );
   return (null);
}
 
Forallf :

Lütfen bana söyle. Grafiğe bir doğru parçası çizin. Segmentin başlangıç ve bitiş fiyatlarını bilmeniz gerekir. Yapılabilir?

Bir örnek buldum. Bunu böyle yaptı.

 //+------------------------------------------------------------------+
//|                                                        линия.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link        ""
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {  
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   //Проверим что есть трендовая линия и она в единственном экземпляре:
   if ( ObjectsTotal ( OBJ_TREND )!= 1 )
   { Comment ( "Нарисуйте 1 трендовую линию!" );}

   //Получим ИМЯ трендовой линии:
   for ( int i= 0 ;i< ObjectsTotal ();i++)
     {
       string name= ObjectName (i);
       if (ObjectType(name)== OBJ_TREND )
        {
         datetime t1=ObjectGet(name,OBJPROP_TIME1);
         datetime t2=ObjectGet(name,OBJPROP_TIME2);
         double p1= NormalizeDouble (ObjectGet(name,OBJPROP_PRICE1), Digits );
         double p2= NormalizeDouble (ObjectGet(name,OBJPROP_PRICE2), Digits );
         Comment (p1, "   " ,p2);
        }
     }
  }
//+------------------------------------------------------------------+

İlk bölümün ortasında yatay olarak olacak başka bir bölüm yapmama yardım etmenizi rica ediyorum. İlk bölümün uzunluğunu değiştireceğim ve ikincisinin yeri de buna göre değişmeli. PRICE2'den çizim 10 mum ileride.

Dosyalar:
EURUSDM12.png  25 kb
 
Forallf :

Bir örnek buldum. Bunu böyle yaptı.

İlk bölümün ortasında yatay olarak olacak başka bir bölüm yapmama yardım etmenizi rica ediyorum. İlk bölümün uzunluğunu değiştireceğim ve ikincisinin yeri de buna göre değişmeli. PRICE2'den çizim 10 mum ileride.

bunun gibi -


369
369
  • 2021.01.07
  • www.youtube.com
лин
 
Iurii Tokman :

bunun gibi -


Böyle.
 
Forallf :
Böyle.

bu bisiklet standart terminal kapasitesidir
Fibonacci çizgileri olarak adlandırılan

 
Iurii Tokman :

bu bisiklet standart terminal kapasitesidir
Fibonacci çizgileri olarak adlandırılan

Bir örnek için orta bana. Hesaplanmış başka bir seviye olacak.
 
Forallf :
Bir örnek için orta bana. Hesaplanmış başka bir seviye olacak.

Koordinatları bilerek bir doğru üzerindeki herhangi bir noktayı bulabilirsiniz. Sizin durumunuzda, segmentin başlangıç ve bitiş tarihlerini ve fiyatlarını biliyoruz. Ortanın fiyatını da bulabiliriz = (başlangıç fiyatı + bitiş fiyatı)/2. Veya başka bir formülünüz.

Şimdi, ilk fonksiyonu kullanarak, segment üzerindeki bir noktanın zamanını bulabiliriz.

 //находит дату точки (координату X) на прямой, на заданную цену (координата Y)
datetime GetPointTimeOnStraight( datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, double ePrice3, string eSymbol, int eTimeFrame)
   {
   if (ePrice2-ePrice1== 0 ) return ( 0.0 );
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime1)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime2)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime2);
   int eIndex3=eIndex1+( int )((eIndex2-eIndex1)*(ePrice3-ePrice1)/(ePrice2-ePrice1));
   return ( iTime (eSymbol,eTimeFrame,eIndex3));
   }

//находит цену точки (координату Y) на прямой, на заданное время (координата X)
double GetPointPriceOnStraight( datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, datetime eTime3, string eSymbol, int eTimeFrame)
   {
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime1)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime2)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime2);
   if (eIndex2-eIndex1== 0 ) return ( 0.0 );
   int eIndex3=(eTime3> iTime (eSymbol,eTimeFrame, 0 ))?( int )(( iTime (eSymbol,eTimeFrame, 0 )-eTime3)/ PeriodSeconds (eTimeFrame)): iBarShift (eSymbol,eTimeFrame,eTime3);
   return (ePrice1+(ePrice2-ePrice1)*(eIndex3-eIndex1)/(eIndex2-eIndex1));
   }
 
Aleksei Stepanenko :

Eh, saçmalığı dondurduysan, bana söylemelisin:

bir nevi anladım, teşekkürler!!