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

 
psyman :

Konumdan kaynaklanan yazışmalarınızı okudum, tabii ki hepsi eğlenceli :-) ama bu kaynamaya neden olan soru ne olacak?

SetIndexBuffer(1, tmp1) aracılığıyla bir dizi bildirmek hiçbir şey yapmaz. Tabii ki aynı döngüde dizi boyutunu artırabilirim ama daha basit ve verimli bir yol bilmek istiyorum.

Kodu tam olarak gösterin - orada ne yaptınız, ne istediniz ve ne oldu.

 

Ben volatiliteye bakmak istiyorum. Yeni başlayanlar için, en azından aç-kapa, dönem boyunca ortalama alma, SMA kullanılarak yapılır.


 //+------------------------------------------------------------------+
//|                                                        _null.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
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot OC
#property indicator_label1    "O-C"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrSteelBlue
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- indicator buffers
double          ip1Buf[];

input int ip1= 100 ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
  
string s_name1;

s_name1= "O-C (" + IntegerToString (ip1) + ")" ;

IndicatorShortName (s_name1);
SetIndexLabel ( 0 , s_name1);


//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ip1Buf);
   
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {


int i;
double tmp1[];

SetIndexBuffer ( 1 , tmp1);


       Print ( "rates_total = " ,rates_total);
       for (i= 1 ; i<rates_total- 1 ; i++)
      {
      tmp1[i]=close[i];      
      ip1Buf[i]=iMA(NULL,0,100,0,0,tmp1[i],0);
      
      }
   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
psyman :

Ben volatiliteye bakmak istiyorum. Yeni başlayanlar için, en azından aç-kapa, dönem boyunca ortalama alma, SMA kullanılarak yapılır.


SetIndexBuffer(1, tmp1) neden OnInit() içinde olmasın?

Neden IndicatorBuffers(2) yok?

Neden optimal olarak hesaplamıyorsunuz? Her kene üzerinde - tam bir döngü.

Neden iMA() ve iMAOnArray() değil?

 

= Neden IndicatorBuffers(2) yok?


#property strict buna küfretmez, bu yüzden muhtemelen kayıt olmadı.


= Neden iMA() ve iMAOnArray() değil?


Bildiğim kadarıyla yazıyorum ama yeterli bilgi yok ve ders kitabında bununla ilgili hiçbir şey yazılmıyor.

Sistem bilgisi eksikliği çok sınırlayıcıdır, pichal.


= Her tikte - tam bir döngü.


Bu konuda hiçbir şey anlamadım, lütfen çiğneyin veya yapıldığı yerin bağlantısını verin.

Saatlik minimum TF'm var.

 
= На tikte - tam bir döngü.


Bu konuda hiçbir şey anlamadım, lütfen çiğneyin veya yapıldığı yerin bağlantısını verin.

Saatlik minimum TF'm var.

OnCalculate'i her çağırdığınızda, for döngüsü 1'den Rate_total'a kadar olan veriler hakkında sessiz kalır, yani. aynı işi yapar. Bu, elbette, kötü.

 
psyman :

= Neden IndicatorBuffers(2) yok?


#property strict buna küfretmez, muhtemelen bu yüzden kayıt olmadı.


= Neden iMA() ve iMAOnArray() değil?


Bildiğim kadarıyla yazıyorum ama yeterli bilgi yok ve ders kitabında bununla ilgili hiçbir şey yazılmıyor.

Sistem bilgisi eksikliği çok sınırlayıcıdır, pichal.


= Her tikte - tam bir döngü.


Bu konuda hiçbir şey anlamadım, lütfen çiğneyin veya yapıldığı yerin bağlantısını verin.

Saatlik minimum TF'm var.

Biliyorsunuz, ben bu konunun tam içindeyim - ortasında bir yerde, bir gösterge şablonu ekledim - onu bulabilir ve doğrudan ondan ne istersen yapabilirsin. Bak. Bu yüzden birçok kez insanların ne ve nasıl ile ilgilendiğini yazdım, bu yüzden bir gösterge şablonu yapmaya karar verdim ve bu konuya koydum.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

Andrei Novichkov , 2018.10.17 22:06

OnCalculate'i her çağırdığınızda, for döngüsü 1'den Rate_total'a kadar olan veriler hakkında sessiz kalır, yani. aynı işi yapar. Bu, elbette, kötü.


Kötü diyorsan, nasıl iyi yapacağımı söyle. Hesaplamalar OnInit'e taşınsın mı?

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

Artyom Trishkin , 2018.10.17 22:10

Biliyorsunuz, ben bu konunun tam içindeyim - ortasında bir yerde, bir gösterge şablonu ekledim - onu bulabilir ve doğrudan ondan ne istersen yapabilirsin. Bak. Bu yüzden birçok kez insanların ne ve nasıl ile ilgilendiğini yazdım, bu yüzden bir gösterge şablonu yapmaya karar verdim ve bu konuya koydum.


"Gösterge şablonu" ve adınıza göre, arama hiçbir şey bulamıyor, ancak burada Savaş ve Barış cildine zaten yazmışlar.

Gönderideki herhangi bir kelime kombinasyonunu hatırlayın.

 
Bir dizi sınıf örneği nasıl oluşturulur?
ClassName* className[] yapıldı, ardından ArrayResize yapıldı, ancak geçersiz işaretçi erişim yöntemlerine erişim vermiyor
 
Roman Sharanov :
Bir dizi sınıf örneği nasıl oluşturulur?
ClassName* className[] yapıldı, ardından ArrayResize yapıldı, ancak geçersiz işaretçi erişim yöntemlerine erişim vermiyor

Bir örnek, CArrayObj'dedir

Neden: