[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 143

 
BooGUY :

Bir fraktal üzerinde! Stoploss ile denedim - birleşiyor, bu yüzden fraktal stoplarla denemek istiyorum ama bu durumda nasıl yazacağımı bilmiyorum. Veya genel olarak, bir danışmana nasıl yazılacağını, giriş koşulunu şöyle yazdı:

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}


kodunuza göre, konuşmanın bir fraktal hakkında olduğundan şüpheliyim. 4 dönem açılış ve kapanış fiyatları nedir?
 
BooGUY :

Bir fraktal üzerinde! Stoploss ile denedim - birleşiyor, bu yüzden fraktal stoplarla denemek istiyorum ama bu durumda nasıl yazacağımı bilmiyorum. Veya genel olarak, bir danışmana nasıl yazılacağını, giriş koşulunu şöyle yazdı:

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}

Stratejiyi test etmek için, fraktallar için takip eden durdurma işlevini bulmanız ve bunu danışmana bağlamanız daha kolaydır. Ya da kendin yaz.

İşlev, her bir açık pozisyonun durmasını ayarlarda belirtilen istenen fraktal değerine taşıyacaktır. Ve sonra, testlerin sonuçlarına dayanarak, bu trolün kullanılmasının tavsiye edilebilirliğini veya fiyat fraktal seviyeye ulaştığında piyasada pozisyonları kapatmayı zaten düşünebilirsiniz. Ve bunu yapmak ve bu önemsiz bir mesele.

Standart iFractals() işlevi size yardımcı olacaktır. İşlev parametrelerinde belirtilen fraktalın bulunduğu fiyatı döndürür.

 

lütfen bana yardım edin, göstergem saatlik zaman diliminde mevcut saat için maksimum dakika hareketini ölçer, ilk 6 saat (bar) için her şeyi yeterince ölçer ve ardından bazı sol değerlerle gelmeye başlar, aşağıdaki kod ve göstergenin kendisi, nerede hata yaptığımı söyle, en azından 3 çubuktan sonraki değerler umurumda değil ama korkarım ilk çubukta hatalar oluşabilir

 #property indicator_separate_window
#property indicator_buffers 1        // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_minimum 0
#property indicator_maximum 25
double Buf_0[];             // Объявление массивов (под буферы индикатора)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer ( 0 ,Buf_0);         // Назначение массива буферу   
SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ); // Стиль линии 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
int i;                           // Индекс бара       
int Counted_bars;                 // Количество просчитанных баров
int m;
int MaxSpeed;
int Speed; 
//--------------------------------------------------------------------   
Counted_bars= IndicatorCounted (); // Количество просчитанных баров    
i= Bars -Counted_bars- 1 ;           // Индекс первого непосчитанного   
while (i>= 0 )                       // Цикл по непосчитанным барам     
 {
 
 MaxSpeed= 0 ;
 if ( Period ()== PERIOD_H1 )
  {
  m= 59 ;
   while (m>= 0 )
   {
   Speed=( iOpen ( Symbol (), PERIOD_M1 ,m+ 60 *i)- iClose ( Symbol (), PERIOD_M1 ,m+ 60 *i))/ Point ;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }
 if ( Period ()== PERIOD_M1 )
  {
  m= 0 ;
   while (m>= 0 )
   {
   Speed=( iOpen ( Symbol (), PERIOD_M1 ,m+i)- iClose ( Symbol (), PERIOD_M1 ,m+i))/ Point ;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }      
 Buf_0[i]=MaxSpeed;             // Значение 0 буфера на i-ом баре      
 i--;                           // Расчёт индекса следующего бара     
 }   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
gösterge başlangıçta farklıydı, parçalarına ayırdım ve kodumu "lehimledim"
Dosyalar:
speed.mq4  3 kb
 
Bir sürü MACD Belki biri böyle bir çürümenin nerede olabileceğini biliyordur????
 
LazarevDenis :

lütfen bana yardım edin, göstergem saatlik zaman diliminde mevcut saat için maksimum dakika hareketini ölçer, ilk 6 saat (bar) için her şeyi yeterince ölçer ve ardından bazı sol değerlerle gelmeye başlar, aşağıdaki kod ve göstergenin kendisi, nerede hata yaptığımı söyle, en azından 3 çubuktan sonraki değerler umurumda değil ama korkarım ilk çubukta hatalar oluşabilir

gösterge başlangıçta farklıydı, parçalarına ayırdım ve kodumu "lehimledim"


Ne almak istedin?
 

şarap :

Ne almak istedin?


Göstergenin dakika çubukları arasında maksimum iOpen -iClose değerini göstermesini istiyorum, ancak bir SAAT için, örneğin bir saat 59 dakikalık çubuklar iOpen-iClose=3 (örneğin) ve bir dakikalık çubuk iOpen-iClose=10 ve saatlik bir zaman diliminde herhangi bir sapma olmadan 10'u göstermelidir ve emirleri kapatmak için göstergeye ihtiyacım var, eğer bir dakika içinde oran aniden yanlış yönde çok hızlı giderse, danışman için bu kapanma sinyali olacaktır

Bu şimdiye kadarki ilk versiyon, o zaman fiyatın hangi yönde hareket ettiğini ayırt etmesini istiyorum, garip olsa da şimdi neden yapmıyor

 

Örneğin Yatay Çizgi gibi bir grafik nesnesine tıklarsanız, açılan pencerede "Açıklama"yı görebilirsiniz.

- Koddan bir "Açıklama" eklemek mümkün müdür?

Teşekkür ederim!

 
chief2000 :

Örneğin bir Yatay Çizgi gibi bir grafik nesnesine tıklarsanız, açılan pencerede "Açıklama" yı görebilirsiniz.

- Koddan bir "Açıklama" eklemek mümkün müdür?

Teşekkür ederim!

https://docs.mql4.com/ru/objects/ObjectSetText
 

Neye ihtiyacın var! Teşekkür ederim!

 

LazarevDenis

Başlangıçta, yanlış olan 59 çubuk dikkate alınır. Dakikalarda boşluklar olabilir ve son saat çubuğu kendi içinde daha az dakika içerebilir.

Saatlik çubuğun (Time[i]) açılış ve kapanış saatini almanız gerekir. Bu süreye bağlı olarak, iBarShift dakikaları için ofsetleri hesaplayın ve ardından bu ofset aralığındaki maksimumu hesaplayın.

Bu arada, gösterge dakika periyodunda ne göstermelidir?

Danışman için fark etmese de dakikalardaki son değeri alması onun için yeterlidir, sayı pozitifse fiyat yükselir, negatif sayı düşerse sayıyı modülo döndürerek öğreniyoruz. hareketin gücü.