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

 
splxgf :
Bu bir hata değil, bir özelliktir. Buradasınız https://www.mql5.com/ru/articles/1388

YOOOOO teşekkürler! Saçmalık. Sorun tek tıkla çözüldü.
 
AlexeyVik :

Matematikte 0, 0'dır ve sizin durumunuzda 0, her şeyin başladığı bir tür fiyattır.

Açılış fiyatı splxgf tarafından önerildiği gibi 1.3926 ise , 0, 1.3926/123*100=1.1322 veya 1.3926/1.23=1.1322 olacaktır.

Bu fiyat hareketinin %1'i (1.3926-1.1322)/100=0.0026 olacaktır

Dahası, umarım bunu kendin anlarsın.


Sevgili - tam saçmalık. Fibo 2 nokta üzerine kurulu, biraz önce yazdıklarımı okuyun. Bir noktadan hiçbir şey hesaplanamaz 1.3926. En azından euro 1.13 iken bakıyorsunuz :)

Referans fiyat, bina Fibo'nun 0 seviyesidir (minimum/maksimum 4H, gün, hafta, ay, yıl...) ve bu çok özel bir fiyattır ve matematiksel bir 0 değildir. Sıfır ve %100 Fibo minimum ve maksimumdur. dönem için fiyat. O zaman 0 seviyesinden bir giriş noktası olarak %23 anlaşılabilir ve TP %38 vb.

 
splxgf :


Peki, o zaman bu başka bir konuşma ve yüzdelerle ilköğretim matematik düzeyinde tamamen çözüldü.

PercentStep=(OrderTakeProfit-OrderOpenPrice)/(138-23) - Bu, papağan puanlarında %1 olacaktır. Doğru, bazen işlenenler, siparişin türüne veya alınan modüloya bağlı olarak değiştirilmelidir.

Daha ileri

StoplossLevel = OrderOpenPrice + PercentStep*(51-23) //LevelWLoss Kim'in terimleriyle, ancak bunun her sipariş için hesaplanması gerekiyor

MoveStoplossLevel = OrderOpenPrice + PercentStep*(76-23) //LevelProfit - yukarıya bakın.


Cevap ve formül için çok teşekkür ederim. Yapmaya çalışacağım.
 

Dördüncü arabelleğin değeri alınamıyor. Neyi yanlış yapıyorum?

 #property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Aqua
//--- input parameters
extern int        Period_MA_1= 14 ;
extern int        p2          = 7 ;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,ExtMapBuffer3);
   SetIndexStyle ( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,ExtMapBuffer4);
   IndicatorDigits ( Digits + 1 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted (),                      
    limit;
     double MA_1_t,MA_2_t;
     if (counted_bars> 0 )
    counted_bars--;
    limit= Bars -counted_bars;
    
   for ( int i= 0 ;i<limit;i++)
   {
   ExtMapBuffer1[i]= Close [i]- Close [i+Period_MA_1];
   ExtMapBuffer2[i]= MathAbs (ExtMapBuffer1[i]);
   ExtMapBuffer3[i]=ExtMapBuffer1[i]/ExtMapBuffer2[i];
   ExtMapBuffer4[i]= iMAOnArray (ExtMapBuffer3, 0 , p2, 0 , MODE_SMA ,i);
   }
   
   return ( 0 );
  }
 
Forexman77 :

Dördüncü arabelleğin değeri alınamıyor. Neyi yanlış yapıyorum?


Örneğimde, birkaç döngü vardı. Gereksizlerden kurtuldunuz mu?
 

Merhaba.

Danışmanın ayarlar penceresinde "DLL çağrısına izin ver" kutusunu işaretlemenin neden mümkün olmadığını söyler misiniz?

Terminal ayarlarında aynısı etkinleştirilir. Diğer danışmanlarda - her şey yolunda.

Bu Expert Advisor'ı kendim yazmaya çalışıyorum. iCustom aracılığıyla harici bir gösterge çağrısı kullanır ve bu da DLL'ye bir çağrı gerektirir.

Yardım için teşekkürler.

 
Vinin :

Örneğimde, birkaç döngü vardı. Gereksizlerden kurtuldunuz mu?
Farklı şekillerde denedim, ancak bunu yaparsam:
 #property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Aqua

//--- input parameters
extern int        Period_MA_1= 14 ;
extern int        p2          = 7 ;
extern int        p3          = 5 ;
extern int        p4          = 3 ;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_NONE );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexBuffer ( 2 ,ExtMapBuffer3);
   SetIndexStyle ( 3 , DRAW_LINE );
   SetIndexBuffer ( 3 ,ExtMapBuffer4);
   IndicatorDigits ( Digits + 1 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted (),
   i,limit1,limit2,limit3,limit4;
   limit1= Bars -counted_bars- 1 ;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if (limit1> 0 ) 
     {
      limit1= Bars -Period_MA_1- 1 ;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }

   for (i=limit1;i>= 0 ;i--) ExtMapBuffer1[i]= Close [i]- Close [i+Period_MA_1];
   for (i=limit2;i>= 0 ;i--) ExtMapBuffer2[i]= MathAbs (ExtMapBuffer1[i]);
   for (i=limit3;i>= 0 ;i--) ExtMapBuffer3[i]=ExtMapBuffer1[i]/ExtMapBuffer2[i];
   for (i=limit4;i>= 0 ;i--) ExtMapBuffer4[i]= iMAOnArray (ExtMapBuffer3, 0 , p2, 0 , MODE_SMA ,i);

   return ( 0 );
  }

O zaman üçüncü ve dördüncü tampon sayılmaz. Hata nerede anlamadım. Bu alanda bilgim yeterli değil.

Her şeyi farklı arabelleklere dönüştürmek değil, ana kısmı şu şekilde hesaplamak güzel olurdu:

 ExtMapBuffer1[i]=( Close [i]- Close [i+Period_MA_1])/ MathAbs ( Close [i]- Close [i+Period_MA_1]);
ama bu durumda, her yer boş.
 
Forexman77 :
Farklı şekillerde denedim, ancak bunu yaparsam:

O zaman üçüncü ve dördüncü tampon sayılmaz. Hata nerede anlamadım. Bu alanda bilgim yeterli değil.

Her şeyi farklı arabelleklere dönüştürmek değil, ana kısmı şu şekilde hesaplamak güzel olurdu:

ama bu durumda, her yer boş.


Formülünüze göre sonuç 1 veya -1 olacaktır. Bu doğru mu yoksa farklı bir sonuç mu bekliyorsunuz?
 
Vinin :

Formülünüze göre sonuç 1 veya -1 olacaktır. Bu doğru mu yoksa farklı bir sonuç mu bekliyorsunuz?

Evet, üçüncü tamponda 1 veya -1 olacak. Dördüncüsü ise bu parametrelerin hareketli ortalaması hesaplanır.

Üçüncü tamponda da 100 ile çarpılarak bölünen bir değer var ama bu sorun değil.

 
Forexman77 :

Evet, üçüncü tamponda 1 veya -1 olacak. Dördüncüsü ise bu parametrelerin hareketli ortalaması hesaplanır.

Üçüncü tamponda da 100 ile çarpılarak bölünen bir değer var ama bu sorun değil.


 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Yellow

//--- input parameters
extern int        Period_MA_1= 14 ;
extern int        p2= 7 ;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_HISTOGRAM );
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted (),
   i,limit1,limit2;
   limit1= Bars -counted_bars- 1 ;
   limit2=limit1;
   if (limit1> 0 )
     {
      limit1= Bars -Period_MA_1- 1 ;
      limit2=limit1-p2;
     }

   for (i=limit1;i>= 0 ;i--) 
     {
      ExtMapBuffer1[i]= 1 ;
       if ( Close [i]< Close [i+Period_MA_1])
         ExtMapBuffer1[i]=- 1 ;
     }
   for (i=limit2;i>= 0 ;i--) ExtMapBuffer2[i]= iMAOnArray (ExtMapBuffer1, 0 ,p2, 0 , MODE_SMA ,i);

   return ( 0 );
  }
//+------------------------------------------------------------------+