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

 
jekk :

Günün iyi zamanı! Lütfen bekleyen siparişlerle başa çıkmama yardım edin. Örneğin, göstergede bir gecikme ayarlamanız gerekir. Bu nasıl yazılabilir?

Fiyat = NormalizeDouble (iMA(Symbol(),TimeFrame_D1, EMA_Period_21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// bu satır nasıl doğru yazılır?

SL = NormalizeDouble(Ask- StopLoss*Point,Rakamlar);

TP = NormalizeDouble(Level_plus_1500_D1,Digits); // ve bu kâr amaçlı - Level_plus_1500_D1 - EMA seviyesi?

OrderSend(Symbol(),OP_BUYLIMIT,Lots,Fiyat ,Slippage, SL,TP,NULL,Magic,0,clrLime);


Price =   NormalizeDouble ( iMA ( Symbol (), PERIOD_D1 , EMA_Period_ 21, 0 , MODE_EMA , PRICE_MEDIAN , 0 )+ 1 * Point , Digits ); // как правильно прописать эту строчку? 
 TP = NormalizeDouble (Level_plus_1500_D1- iMA ( Symbol (),PERIOD_D1, 21, 0 , MODE_EMA , PRICE_MEDIAN , 0 ),Digits); // и эту для профита -  Level_plus_1500_D1 - уровень ЕМА  ?

Yardımı zaten okuyun, her şey orada ve oldukça açık.

Ve SL ve TP'yi piyasadan değil, gecikme fiyatından (Fiyat) ayarlamak daha iyidir, bir şekilde daha mantıklı.

 
evillive :

Yardımı zaten okuyun, her şey orada ve oldukça açık.

Ve SL ve TP'yi piyasadan değil, gecikme fiyatından (Fiyat) ayarlamak daha iyidir, bir şekilde daha mantıklı.

Teşekkür ederim!
 

Herkese merhaba) lütfen sorunla ilgili bana yardımcı olun.Bu yazıda yazılan fonksiyon ile uğraştım https://www.mql5.com/ru/articles/1357 .Bu fonksiyondan gelen sinyallere göre siparişlerin nasıl açıldığını kontrol etmeye karar verdim, ve basit bir kod yazdı:

Ve metatrader bunu verir:

Bu yüzden ne yapacağımı bilmiyorum, ya tırnaklarda bir sorun var ya da fonksiyon kodunda.

İşlev kodu eklendi.

Dosyalar:
func_ad.mqh  33 kb
 
LBatters :

Herkese merhaba) lütfen sorunla ilgili bana yardımcı olun.Bu yazıda yazılan fonksiyon ile uğraştım https://www.mql5.com/ru/articles/1357 .Bu fonksiyondan gelen sinyallere göre siparişlerin nasıl açıldığını kontrol etmeye karar verdim, ve basit bir kod yazdı:

Ve metatrader bunu verir:

Bu yüzden ne yapacağımı bilmiyorum, ya tırnaklarda bir sorun var ya da fonksiyon kodunda.

İşlev kodu eklendi.


muhtemelen fragmanda hala yanlış fonksiyon, bu 59. satırda dizilerle ilgili hiçbir şey yok ve hata açıkça dizinin ötesine geçiyor, ikinci ekran görüntüsüne göre 59. satırda.
 
evillive :

muhtemelen fragmanda hala yanlış fonksiyon, bu 59. satırda dizilerle ilgili hiçbir şey yok ve hata açıkça dizinin ötesine geçiyor, ikinci ekran görüntüsüne göre 59. satırda.

Hayır, ben sadece orada yorum yaptım, bu yüzden satırlar değişti.

İşte benim derlediğim.

Dosyalar:
func_ad1.mqh  63 kb
 
LBatters :

Hayır, sadece orada yorum yaptım, bu yüzden satırlar değişti.

İşte benim derlediğim.


denemek
for (i=2; i<=nBars-2; i++)
 
evillive :

denemek
for (i=2; i<=nBars-2; i++)


ha!Şimdi bir işlem açıyor ve testin bittiği yer burası, neden 2 çıkardığımızı anlamıyorum?
 
LBatters :

ha!Şimdi bir işlem açıyor ve testin bittiği yer burası, neden 2 çıkardığımızı anlamıyorum?


Ayrıca, dahil etmede hala diziler var, muhtemelen zaten tökezliyorlar. Yoksa hala 59. hattan mı şikayet ediyor?

Ve çıkarma basit aritmetiktir - eğer 100 eleman varsa, numaralandırma 0..99'dur (çünkü nBars=100 , o zaman 99 sizin nBars-1 'inizdir), bu da algoritmanızda 1'den itibaren sayabileceğiniz anlamına gelir (0 ile karşılaştırma) ve 2 çubuk) ila 98 (97 ve 99 çubuk ile karşılaştırıldığında), 99'da diziden zaten bir ayrılma olacaktır.

 
evillive :


Ayrıca, dahil etmede hala diziler var, muhtemelen zaten tökezliyorlar. Yoksa hala 59. hattan mı şikayet ediyor?

Ve çıkarma basit aritmetiktir - 100 eleman varsa, o zaman numaralandırma 0..99'dur (99 sizin nBars- 1'inizdir), bu da algoritmanızda 1'den (0 ve 2 çubukla karşılaştırma) 98'e kadar sayabileceğiniz anlamına gelir. ( 97 ve 99 çubuklarla karşılaştırma), 99'da dizinin dışında zaten bir ayrılma olacaktır.


yani aynı yerde küçük yada eşit yani 99 dahil yani öyle değil mi emir açarken 130 hatası çıkıyor

 
LBatters :


yani aynı yerde küçük yada eşit yani 99 dahil yani öyle değil mi emir açarken 130 hatası çıkıyor


burada i=99'a ulaştık, bu kenar, son eleman. karşılaştırma döngüde

 if (TempIND[i]<TempIND[i- 1 ] && TempIND[i+ 1 ]>=TempIND[i])

ve nerede [i+ 1 ] var?

Neden: