[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 309

 

Bana yardım et lütfen!

Kod dört satırın tümü için eşdeğer olmasına rağmen yalnızca iki satır MA görüntüleniyor.Sorun nedir?

#özellik göstergesi_separate_window // Gösterge. ayrı bir pencerede çizilmiş
#property göstergesi_buffers 4 // Arabellek sayısı
#property Indicator_color1 Mavi // İlk satırın rengi
#özellik göstergesi_renk2 Kırmızı // İkinci satır rengi
#özellik göstergesi_color3 Zeytin
#özellik göstergesi_color4 Deniz mavisi


çift Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Dizileri bildirme (gösterge arabellekleri için)
//------------------------------------------------ --------------------
int init() // Özel fonksiyon init()
{
SetIndexBuffer(0,Buf_MA40); // Bir arabelleğe bir dizi atama
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
SetIndexBuffer(1,Buf_MA20); // Bir arabelleğe bir dizi atama
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
SetIndexBuffer(3,Buf_ROC_MA40); // Bir arabelleğe bir dizi atama
SetIndexStyle (3,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
SetIndexBuffer(4,Buf_ROC_MA40); // Bir arabelleğe bir dizi atama
SetIndexStyle (4,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
dönüş; // Spesifikasyondan çık. fonksiyonlar init()
}
//------------------------------------------------ --------------------
int start() // Özel fonksiyon start()
{
int i, // Çubuk dizini
tarih=3000,
counted_bars; // Hesaplanan çubuk sayısı
çift ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//------------------------------------------------ --------------------
// Counted_bars=IndicatorCounted(); // Hesaplanan çubuk sayısı
i=Barlar;//-Counted_bars-1; // İlk sayılmayan dizini
while(i>=0) // Sayısız çubuklar arasında dolaş
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
Alert("ma20=",ma20, "ma20_s=",ma20_s," ma40_s=",ma40_s," ma40=",ma40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
ben--;
// Sonraki çubuğun indeksini hesapla
}
//------------------------------------------------ --------------------
dönüş; // Spesifikasyondan çık. start() fonksiyonları
}

 

1. Bir hata ayıklayıcı önerin (tercihen değişkenlerin ara değerlerini görebilmeniz için adım adım hata ayıklama ile).

2. Hata ayıklama verilerini nasıl ve nerede (hangi pencerede) gösterebilirim, aksi takdirde uyarıları kullanmak sakıncalıdır.

3.MQL sürümünü nasıl güncelleyebilirim?

 

Lütfen söyle!

Sadece Avrupa oturumunda danışman ticareti nasıl yapılır?

 
VNG писал(а) >>

Bana yardım et lütfen!

Kod dört satırın tümü için eşdeğer olmasına rağmen yalnızca iki satır MA görüntüleniyor.Sorun nedir?

 int init ( ) // Специальная функция init()
{
SetIndexBuffer ( 0 , Buf_MA40 ) ; // Назначение массива буферу
SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ) ; // Стиль линии
SetIndexBuffer ( 1 , Buf_MA20 ) ; // Назначение массива буферу
SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 2 ) ; // Стиль линии
SetIndexBuffer ( 2 , Buf_ROC_MA40 ) ; // Назначение массива буферу
SetIndexStyle ( 2 , DRAW_LINE , STYLE_SOLID , 2 ) ; // Стиль линии
SetIndexBuffer ( 3 , Buf_ROC_MA40 ) ; // Назначение массива буферу
SetIndexStyle ( 3 , DRAW_LINE , STYLE_SOLID , 2 ) ; // Стиль линии
return ; // Выход из спец. ф-ии init()
}

Bir hata buldum. Tampon 1'i hemen arabellek 3 izledi. Tampon 2 atlandı

Sadece keneleri ve kenelerin farkını tek bir pencerede göstermeye değmez. Değerleri, büyüklük derecesinden daha fazla farklılık gösterir.

 
KoDi писал(а) >>

Lütfen söyle!

Sadece Avrupa oturumunda danışman ticareti nasıl yapılır?

Modülün başına başlangıç koyun

if(Saat()<7 || Saat()>15)dönüş(0);

 

Lütfen koda tekrar bakın. yeni elde edilen değerler tamamen farklı bir ölçeğe sahiptir.

Hala hiçbir şey çıktı.

#özellik göstergesi_separate_window // Gösterge. ayrı bir pencerede çizilmiş
#property gösterge_buffers 2 // Arabellek sayısı
#property Indicator_color1 Mavi // İlk satırın rengi
#özellik göstergesi_renk2 Kırmızı // İkinci satır rengi
//#özellik göstergesi_renk3 Zeytin
//#özellik göstergesi_color4 Deniz mavisi


çift Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Dizileri bildirme (gösterge arabellekleri için)
//------------------------------------------------ --------------------
int init() // Özel fonksiyon init()
{
//SetIndexBuffer(0,Buf_MA40); // Bir arabelleğe bir dizi atama
//SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Çizgi stili
//SetIndexBuffer(1,Buf_MA20); // Bir arabelleğe bir dizi atama
//SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Çizgi stili
SetIndexBuffer(0,Buf_ROC_MA40); // Bir arabelleğe bir dizi atama
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
SetIndexBuffer(1,Buf_ROC_MA20); // Bir arabelleğe bir dizi atama
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
dönüş; // Spesifikasyondan çık. fonksiyonlar init()
}
//------------------------------------------------ --------------------
int start() // Özel fonksiyon start()
{
int i, // Çubuk dizini
tarih=3000,
counted_bars; // Hesaplanan çubuk sayısı
çift ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//------------------------------------------------ --------------------
// Counted_bars=IndicatorCounted(); // Hesaplanan çubuk sayısı
i=Barlar;//-Counted_bars-1; // İlk sayılmayan dizini
while(i>=0) // Sayısız çubuklar arasında dolaş
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
ben--;
// Sonraki çubuğun indeksini hesapla
}
//------------------------------------------------ --------------------
dönüş; // Spesifikasyondan çık. start() fonksiyonları
}

 
VNG писал(а) >>

Lütfen koda tekrar bakın. yeni elde edilen değerler tamamen farklı bir ölçeğe sahiptir.

Hala hiçbir şey çıktı.

#özellik göstergesi_separate_window // Gösterge. ayrı bir pencerede çizilmiş
#property gösterge_buffers 2 // Arabellek sayısı
#property Indicator_color1 Mavi // İlk satırın rengi
#özellik göstergesi_renk2 Kırmızı // İkinci satır rengi
//#özellik göstergesi_renk3 Zeytin
//#özellik göstergesi_color4 Deniz mavisi


çift Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Dizileri bildirme (gösterge arabellekleri için)
//------------------------------------------------ --------------------
int init() // Özel fonksiyon init()
{
//SetIndexBuffer(0,Buf_MA40); // Bir arabelleğe bir dizi atama
//SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Çizgi stili
//SetIndexBuffer(1,Buf_MA20); // Bir arabelleğe bir dizi atama
//SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Çizgi stili
SetIndexBuffer(0,Buf_ROC_MA40); // Bir arabelleğe bir dizi atama
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
SetIndexBuffer(1,Buf_ROC_MA20); // Bir arabelleğe bir dizi atama
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2); // Çizgi stili
dönüş; // Spesifikasyondan çık. fonksiyonlar init()
}
//------------------------------------------------ --------------------
int start() // Özel fonksiyon start()
{
int i, // Çubuk dizini
tarih=3000,
counted_bars; // Hesaplanan çubuk sayısı
çift ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//------------------------------------------------ --------------------
// Counted_bars=IndicatorCounted(); // Hesaplanan çubuk sayısı
i=Barlar;//-Counted_bars-1; // İlk sayılmayan dizini
while(i>=0) // Sayısız çubuklar arasında dolaş
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
ben--;
// Sonraki çubuğun indeksini hesapla
}
//------------------------------------------------ --------------------
dönüş; // Spesifikasyondan çık. start() fonksiyonları
}

Çok fazla hata var.

Temelde dizilerle çalışırken bir hata.

Dosyalar:
proba.mq4  2 kb
 

Bu sorunu çözmeye yardımcı olun - bir alım / satım sinyali belirir, danışman bir anlaşma açar, bir kar ve bir durdurma belirler. Ve şimdi, anlaşma aynı mum üzerinde bir stop ile kapatılırsa, danışman anlaşmayı tekrar açar, ancak açmamak gerekir, yani. bir sinyalde bir ticaret açıldı.

Nasıl yapılır?

 
KoDi >> :

Nasıl yapılır?

Son siparişin kapanış zamanı, mevcut çubuğun açılış zamanından az olmalıdır.

Eğer durum böyle değilse, bir anlaşma açmıyoruz.

 
TheXpert >> :

Son siparişin kapanış zamanı, mevcut çubuğun açılış zamanından az olmalıdır.

Eğer durum böyle değilse, bir anlaşma açmıyoruz.

Kafam karıştı.

Peki en az bir anlaşma yapılana kadar girmemesi şartıyla yazarsanız İLK anlaşmayı nasıl açıyor??