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

 
Igor Makanu :

örneğinde çok hata var

olmalı:

buradaki fiyatlar normalleştirilmemiştir OrderSend(Symbol(),OP_BUY,Lots,Ask,3, Bid-SL*Point,Bid+TP*Point, "My order",MagicNumber,0,clrGreen);

burada mantık hiç açık değil, koşul yanlışsa neden OnTick'ten () çıkılıyor?

muhtemelen siparişler arasında sıralama döngüsüne devam etmeniz ve sadece kaç sipariş saymanız gerekir

IMHO veya arama yaparak veya KB'de "Yalnızca KimIV'ten yararlı işlevler" içeren bir konu bulun, siparişleri sayma ve yeni siparişler verme konusunda nasıl danışmanlar yaptıklarını görün, örneğiniz mantıkta çok basittir ve gelecekte değiştirmek zor olacaktır. diğer görevler için ... iyi, belki takip ediyor, vidalamak isteyecek

Hala erken)))) Aynı anda çok şey olacak. Orada, bir anlamda, anlayış yok)))) Ve evet, elbette, hesaplamalardan sonra, gönderenin yapması gereken her şey için normalleştirme gereklidir)))

Emir için bir şart var, mevcut enstrümanda sihrimiz ile emir yoksa sipariş veriyoruz. Ve sonra koşul, kapanana kadar siparişin verilmesine ulaşmayacaktır.

PS, durumu beğenmediyse.

 

Selamlar! Bana ifadeyi nasıl okuyacağımı söyle

 string sym=(symbol== NULL ? Symbol () : symbol);
 
Galim_V :

Selamlar! Bana ifadeyi nasıl okuyacağımı söyle

Sembol değişkeni boşsa, mevcut grafik sembolünün değerini sym değişkenine döndürün ve boş değilse değerini sym değişkenine aktarın

 
Vladimir Pastushak :

Sembol değişkeni boşsa, mevcut grafik sembolünün değerini sym değişkenine döndürün ve boş değilse değerini sym değişkenine aktarın

Sayesinde!

 
Galim_V :

Selamlar! Bana ifadeyi nasıl okuyacağımı söyle

Şu şekilde okunur: Sembol NULL ise değişkene Symbol() değerini atayın, aksi takdirde sembolün değerini atayın .

Bu girişe eşdeğer

 string sym;
if (symbol == NULL )
sym = Symbol ();
else
sym = symbol;
Fark sadece satır sayısındadır.
 
Alexey Viktorov :

Şu şekilde okunur: Sembol NULL ise değişkene Symbol() değerini atayın, aksi takdirde sembolün değerini atayın .

Bu girişe eşdeğer

Fark sadece satır sayısındadır.

Teşekkür ederim!

 
Valeriy Yastremskiy :

Ve o zaman, örneğin, eurobucks için değil, europounds için açık bir pencereniz var, seçilen siparişin sembolünü eurobucks ile karşılaştırıyorsunuz, eğer doğruysa, eurobucks'ta bir emir var ve sihrimiz varsa, o zaman geri dönün Onstart işlevinden ve değilse, eurobaks'a bir sipariş veriyoruz, ancak europound için yakın, yüksek, talep, teklifiniz olacak. Bu enstrümanlar için teklif ve talep farklı olduğu için emir açarken bir hata olacaktır. Ve Symbol(), geçerli pencerenin sembolünü döndürür ve hiçbir hata oluşmaz.

Ve meta düzenleyiciden şablonu kullanın, sol üstte bir Oluştur düğmesi var. OnStart işlevi hala kullanılmaktadır, ancak bu doğru değildir ve OnStart komut dosyaları içindir. Doğru desen.

Doğru kod. Siparişe yapılan bir yorumu kaçırdınız ve kodunuzdaki sihir dikkate alınmadı. Açılış satırına yönelik uyarılarda, bir sayının bir dizgeye örtük tip dönüşümüne dikkat edin!!!

Evet, olması gerektiği gibi çalışıyor. Teşekkür ederim!

Bir şablona göre yaratmanın bu kadar önemli olduğunu bilmiyordum. OnStart - gerçekten. Temel yapım yanlıştı. Pekala, şimdi bileceğim.

 
Alexey Belyakov :

Evet, olması gerektiği gibi çalışıyor. Teşekkür ederim!

Bir şablona göre yaratmanın bu kadar önemli olduğunu bilmiyordum. OnStart - gerçekten. Temel yapım yanlıştı. Pekala, şimdi bileceğim.

Siparişlerle çalışma işlevlerine eklediğiniz her şey normalleştirilmelidir. Ondalık noktadan sonra 6 ondalık basamak varsa, sipariş verilmeyecek ve hata verecektir.

Arama yaparak veya KodoBase'e bakarak "Yalnızca KimIV'ten yararlı işlevler" içeren bir konu bulun.

Igor Makanu yukarıda daha fazla hata yazdı. Ve Kim'in özellikleri başlamak için gerçekten yararlıdır. Anlaşılır yorumlar.

 

Lütfen yardım edin. Test ederken neden hata veriyor - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:00 123456 GBPUSD,M30: dizi '123456.mq4' (59,13)""" içinde aralık dışında ????


#property telif hakkı "2020, Grey."

#özellik bağlantısı "uirnP0215@mail.ru"

#özellik sürümü "1.00"

#mülkiyet katı


çift lot girişi = 0.01;

girdi int Sihir = 1546;



çift ibufUP[];

çift ibufDN[];


//+------------------------------------------- --------------------+

//| uzman başlatma işlevi |

//+------------------------------------------- --------------------+

int OnInit()

{


dönüş(INIT_SUCCESSED);

}

//+------------------------------------------- --------------------+

//| Uzman başlatmasızlaştırma işlevi |

//+------------------------------------------- --------------------+

geçersiz OnDeinit(const int nedeni)

{

//---


}

//+------------------------------------------- --------------------+

//| Uzman onay işlevi |

//+------------------------------------------- --------------------+

geçersiz OnTick()

{

CountFractals();

if(ibufUP[3]>0)

{

if(!OrderSend(Symbol(), OP_SELL, lot, Bid, 30, 0, 0, "", Magic, 0, clrRed))

Print("Satış emri açılamadı");

}

if(ibufDN[3]>0)

{

if(!OrderSend(Symbol(), OP_BUY, lot, Bid, 30, 0, 0, "", Magic, 0, clrGreen))

Print("Satın alma siparişi açılamadı");

}



}

//+------------------------------------------- --------------------+

//+------------------------------------------- --------------------+

geçersiz CountFractals()

{

for(int i=150; i>=0; i--)

{

ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);

ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);

}

}

//+------------------------------------------- --------------------+



 
Madmas :

Lütfen yardım edin. Test ederken neden hata veriyor - "" 2020.08.13 13:09:11.393 2018.08.01 00:00:00 123456 GBPUSD,M30: dizi '123456.mq4' (59,13)""" içinde aralık dışında ????


#property telif hakkı "2020, Grey."

#özellik bağlantısı "uirnP0215@mail.ru"

#özellik sürümü "1.00"

#mülkiyet katı


çift lot girişi = 0.01;

girdi int Sihir = 1546;



çift ibufUP[];

çift ibufDN[];


//+------------------------------------------- --------------------+

//| uzman başlatma işlevi |

//+------------------------------------------- --------------------+

int OnInit()

{


dönüş(INIT_SUCCESSED);

}

//+------------------------------------------- --------------------+

//| Uzman başlatmasızlaştırma işlevi |

//+------------------------------------------- --------------------+

geçersiz OnDeinit(const int nedeni)

{

//---


}

//+------------------------------------------- --------------------+

//| Uzman onay işlevi |

//+------------------------------------------- --------------------+

geçersiz OnTick()

{

CountFractals();

if(ibufUP[3]>0)

{

if(!OrderSend(Symbol(), OP_SELL, lot, Bid, 30, 0, 0, "", Magic, 0, clrRed))

Print("Satış emri açılamadı");

}

if(ibufDN[3]>0)

{

if(!OrderSend(Symbol(), OP_BUY, lot, Bid, 30, 0, 0, "", Magic, 0, clrGreen))

Print("Satın alma siparişi açılamadı");

}



}

//+------------------------------------------- --------------------+

//+------------------------------------------- --------------------+

geçersiz CountFractals()

{

for(int i=150; i>=0; i--)

{

ibufUP[i] = iFractals(NULL, 0, MODE_UPPER, i);

ibufDN[i] = iFractals(NULL, 0, MODE_LOWER, i);

}

}

//+------------------------------------------- --------------------+



Başlamak için, CountFractals işlevinde eksiltme sayacını ayarlayın.