Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 456

 
E_Ghazaryan :
Evet, tam olarak =D))) Zaten bağlı.)))

Tüm bu parametreler, gösterge adından sonra virgülle ayrılmış olarak iCustom()'da ve onlardan sonra iki parametre daha listelenmelidir: arabellek numarası ve verilerin alındığı çubuğun numarası. Onlar.:

iCustom(Symbol(), Period() , "_MTF_ADX3", 0, 500, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number).

Listelenen tüm değerler EA'nın harici değişkenleri olarak ayarlanabilir ve bu değişkenlerin adlarını sabit kodlanmış değerler yerine iCustom()'a girebilirsiniz.

 

Bana nedenini söyleme:

çift d = 0.07;

d = NormalizeÇift (d,2);

her iki durumda da d== 0.0700000000000001

2 ondalık basamak nasıl bırakılır?

 
pusheax :

Bana nedenini söyleme:

çift d = 0.07;

d = NormalizeÇift(d,2);

her iki durumda da d== 0.0700000000000001

2 ondalık basamak nasıl bırakılır?


Print() ile Journal'a yazdırıldığında normalleştirilmiş bir sayının beklediğinizden daha fazla ondalık basamak içerebileceğini unutmayın. Örneğin,

   double a= 76.671 ;             // нормализованное число с 3 знаками после запятой
   Print ( "Print(76.671)=" ,a);   // выведем его как есть
   Print ( "DoubleToString(a,8)=" , DoubleToString (a, 8 )); // выведем с заданной точностью

terminalde verir:

   DoubleToString (a, 8 )= 76.67100000

   Print ( 76.671 )= 76.67100000000001


Yani baskı için ekstra değerlerin çıktısı sorun olmaz.

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Karputov Vladimir :


Print() ile Journal'a yazdırıldığında normalleştirilmiş bir sayının beklediğinizden daha fazla ondalık basamak içerebileceğini unutmayın. Örneğin,

terminalde verir:


Yani baskı için ekstra değerlerin çıktısı sorun olmaz.

Teşekkür ederim tam 0.07 ile pozisyon açmaya çalıştığımda hata veriyor (ben de öyle sanıyordum), görünüşe göre mesele başka bir şey, daha iyi anlayacağım.
 
pusheax :
Teşekkür ederim tam 0.07 ile pozisyon açmaya çalıştığımda hata veriyor (ben de öyle sanıyordum), görünüşe göre mesele başka bir şey, daha iyi anlayacağım.
Her şeyden önce, hata numarasına göre açıklamaya bakmanız gerekir. Bu, arama yolunu kısaltacaktır.
 

İyi akşamlar

dinamik bir dizi bildirdi

double all_order[][10];

OnInit'te geçersiz kılındı

ArrayResize(all_order, 20);

fonksiyona veri giriyorum

void OR_spisok(çift a0, çift a1, çift a2, çift a3, çift a4, çift a5)

{

int a10=int(a0);

all_order[a10][0]=a0;

all_order[a10][1]=a1;

all_order[a10][2]=a2;

all_order[a10][3]=a3;

all_order[a10][4]=a4;

all_order[a10][5]=a5;

}

üç satır iyi çalışıyor, 4 takoz

2015.10.09 20:13:47.908 3102 EURUSD,H1: dizi '3102.mq4' içinde aralık dışında (393.10)

393, 10 sadece:

all_order[a10][0]=a0;

hata nerede?

#property strict satırı kaldırıldı

script çalışıyor, bu satır olmadan devam edebilir miyim?

 
pr0gre5 :

İyi akşamlar

dinamik bir dizi bildirdi


#property strict satırı kaldırıldı

script çalışıyor, bu satır olmadan devam edebilir miyim?

Evet
 
Artyom Trishkin :

Tüm bu parametreler, gösterge adından sonra virgülle ayrılmış olarak iCustom()'da ve onlardan sonra iki parametre daha listelenmelidir: arabellek numarası ve verilerin alındığı çubuğun numarası. Onlar.:

iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 8, 14, 6, 6, 2, true, false, buffer_number, bar_number).

Listelenen tüm değerler EA'nın harici değişkenleri olarak ayarlanabilir ve bu değişkenlerin adlarını sabit kodlanmış değerler yerine iCustom()'a girebilirsiniz.

Cevap için teşekkürler. Ama gerçek şu ki, bunu ilk başta yaptım, ancak yanlış değerler aldığımda, EA'nın standart gösterge parametrelerini kullanması için parametreleri iCustom'dan kaldırmaya karar verdim. Ancak her iki durumda da EA yanlış değerler alır. Yani örneğin Alert Mavi çizginin 30.32362 değerlerini veriyor ve indikatör grafiğine baktığımda aynı yerde 22.3320 değerine sahip. Ve diğer satırlarla aynı.
 
E_Ghazaryan :
Cevap için teşekkürler. Ama gerçek şu ki, bunu ilk başta yaptım, ancak yanlış değerler aldığımda, EA'nın standart gösterge parametrelerini kullanması için parametreleri iCustom'dan kaldırmaya karar verdim. Ancak her iki durumda da EA yanlış değerler alır. Yani örneğin Alert Mavi çizginin 30.32362 değerlerini veriyor ve indikatör grafiğine baktığımda aynı yerde 22.3320 değerine sahip. Ve diğer satırlarla aynı.
Göstergeden veri aldığınız kodu gösterin.
 
Artyom Trishkin :
Göstergeden veri aldığınız kodu gösterin.

Kod harikaydı. Ancak danışmanın kurallara göre çalışmadığı sorunun ne olduğunu bulmak için bu kısmı ayrı bir bölüme ayırdım ve test etmeye başladım.

double Ind_Blue=iCustom(NULL, 0, "_MTF_ADX3",1,0);

double Ind_Red=iCustom(NULL, 0, "_MTF_ADX3",2,0);

Uyarı (" Ind_Blue= " ,Ind_Blue , " Ind_Red= " ,Ind_Red);

Danışman dosyasını da ekliyorum. Vaktinizi boşa harcamak istemiyorum ama sorunu bulamıyorum.

Ve aynı soruna sahip başka bir benzer gösterge (Adx mtf). Bunun için bir mq4 dosyası var. Ancak kod bir sorun gibi görünmüyor.

Dosyalar:
_MTF_ADX3.ex4  5 kb
Adx_mtf.ex4  21 kb
Adx_mtf.mq4  6 kb