Bazı nazik insanlar bana aşağıdaki şeyi nasıl yazacağımı söylüyor.
Her tik için iVolume'u hesaplayan bir eğitim göstergesi yaptım: iVolume seğirenler için pozitif, iVolume seğirenler için negatif. Bir eğri elde etmek için, tüm iVolume'u (pozitif ve negatif) çubuktan çubuğa değişen bir toplamda topluyorum. Bir eğri çıkıyor. Ancak 2 sorunla karşılaştım:
1) çizginin güçlü bir şekilde kırıldığı ortaya çıkıyor;
2) Danışmanı test etmek imkansızdır, çünkü ortaya çıkan iVolume grafiği yalnızca gerçek hayatı yaşar.
Soru:
1) arabelleğe yazdığım ortalama verilere dayanarak bir grafik oluşturmanıza izin veren kodu nasıl açıklarsınız?
2) Bu gösterge (gerçek modda elde edilen) üzerindeki verileri belirli bir dosyaya yazmak mümkün mü, böylece daha sonra, bu dosyaya atıfta bulunarak, önceden toplanmış onay işaretini uygulayarak geçmiş veriler üzerinde bir gösterge oluşturmak mümkün olacak mı? onlara hacim? Eğer öyleyse, bunu programlı olarak nasıl tanımlayabilirim? Yoksa mevcut iVolume bilgilerinin dosyaya yazılmasını gerektirmeyen başka bir çözüm var mı?
#property version"1.00"#property strict#property indicator_separate_window#property indicator_buffers2#property indicator_label1"Вверх"#property indicator_type1DRAW_LINE#property indicator_color1 Salmon
#property indicator_style1STYLE_SOLID#property indicator_width12#property indicator_label2"Вниз"#property indicator_type2DRAW_LINE#property indicator_color2clrDarkTurquoise#property indicator_style2STYLE_SOLID#property indicator_width22datetime Время= 0 ; // Время прошлого бараdouble Bid1;
double Buf_1[];
long V1; // объем для текущего тика вверхlong V2; // накопленный объем для всех тиков вверх текущего бараlong V3; // объем текущего тика внизlong V4; // накопленный объем для всех тиков вниз для текущего бараlong V5; // отрицательные и положительные iVolume нарастающим итогомvoidOnInit ()
{
IndicatorDigits ( 0 );
SetIndexBuffer ( 0 ,Buf_1);
//SetIndexBuffer(1,Buf_2);
Bid1= Bid ;
V5 = 0 ;
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
datetime Вр= Time [ 0 ]; // Время текущего бараif (Вр>Время) // Если новый бар
{
Время=Вр; // Запомнить// Buf_1[0]=0; // и обнулить последний элемент буфера
}
if ( Bid >= Bid1)
{
if ( Bid > Bid1)
{
V1 = iVolume ( NULL , 0 , 0 ); // если повышающий цену тик
V2 = V1 + V2;
}
else
{
V1 = 0 ; // если Bid1 = Bid2, т.е. изменение цены = 0, то iVolume этого тика присваиваем 0;
V2 = V1 + V2;
}
}
else
{
V3 = iVolume ( NULL , 0 , 0 ); // если понижающий цену тик
V4 = V3 + V4;
}
V5 = V2-V4;
Bid1= Bid ;
Buf_1[ 0 ]= V5; // в буфер сгружаем return (rates_total);
}
YarTrade : (gerçek modda elde edilen) bu göstergeyle ilgili verileri belirli bir dosyaya yazmak mümkün mü, böylece daha sonra, bu dosyaya atıfta bulunarak, önceden toplanan verileri uygulayarak geçmiş verilere dayalı bir gösterge oluşturmak mümkün olacak mı? onlara kene hacimleri? Eğer öyleyse, programlı olarak nasıl tanımlanabilir? Yoksa mevcut iVolume bilgilerinin dosyaya yazılmasını gerektirmeyen başka bir çözüm var mı?
Bir dosyadaki verilere dayalı gösterge - aramaya bu satıra girdi ve bulundu
Merhaba. Arkadaşlar lütfen biraz yardım edin. Birisi , gösterge ayarlarında satırın görüntülenmesi için ses dosyasının adını belirtebileceğiniz bir satır ayarlayabilir mi?
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Bazı nazik insanlar bana aşağıdaki şeyi nasıl yazacağımı söylüyor.
Her tik için iVolume'u hesaplayan bir eğitim göstergesi yaptım: iVolume seğirenler için pozitif, iVolume seğirenler için negatif. Bir eğri elde etmek için, tüm iVolume'u (pozitif ve negatif) çubuktan çubuğa değişen bir toplamda topluyorum. Bir eğri çıkıyor. Ancak 2 sorunla karşılaştım:
1) çizginin güçlü bir şekilde kırıldığı ortaya çıkıyor;
2) Danışmanı test etmek imkansızdır, çünkü ortaya çıkan iVolume grafiği yalnızca gerçek hayatı yaşar.
Soru:
1) arabelleğe yazdığım ortalama verilere dayanarak bir grafik oluşturmanıza izin veren kodu nasıl açıklarsınız?
2) Bu gösterge (gerçek modda elde edilen) üzerindeki verileri belirli bir dosyaya yazmak mümkün mü, böylece daha sonra, bu dosyaya atıfta bulunarak, önceden toplanmış onay işaretini uygulayarak geçmiş veriler üzerinde bir gösterge oluşturmak mümkün olacak mı? onlara hacim? Eğer öyleyse, bunu programlı olarak nasıl tanımlayabilirim? Yoksa mevcut iVolume bilgilerinin dosyaya yazılmasını gerektirmeyen başka bir çözüm var mı?
Belki kodun sonuna ekleyin:
double macurrent= iMAOnArray (Buf_1[0],0,5,0, MODE_LWMA ,0);
Hayır! Derleyici dizi olmadığını söyleyen bir hata yazar.
Yardım edebilecek olan var mı? Benim için çıkmaz görevim burada belirtilmiştir: https://www.mql5.com/en/forum/160683/page378#comment_6053255
Bir dosyadaki verilere dayalı gösterge - aramaya bu satıra girdi ve bulundu
Bir tür kabus, neden böyle yayıldığını anlamıyorum:
Kod bölümü:
line[0]=MathFloor(Düşük[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(satır[0],D));
Print("Kod",DoubleToStr( MathFloor (Düşük[1]*MathPow(10,D-1)),D));
Çıktılar:
EURUSD,M15: Var 0.00000
EURUSD,M15: Kod 11754.00000
Atamadan sonra değere ne olur?
line[0]=MathFloor(Düşük[1]*MathPow(10,D-1));
Print("Var ",DoubleToStr(satır[0],D));
Print("Kod",DoubleToStr(MathFloor(Düşük[1]*MathPow(10,D-1)),D));
Çıktılar:
EURUSD,M15: Var 0.00000
EURUSD,M15: Kod 11754.00000
Atamadan sonra değere ne olur?
Atama sonrası değişkenlerin değerlerini ve D değişkeninin değerini yazdırın. Hesap makinesinde hesaplayalım...
Merhaba. Arkadaşlar lütfen biraz yardım edin. Birisi , gösterge ayarlarında satırın görüntülenmesi için ses dosyasının adını belirtebileceğiniz bir satır ayarlayabilir mi?
Atama sonrası değişkenlerin değerlerini ve D değişkeninin değerini yazdırın. Hesap makinesinde hesaplayalım...
Bu yüzden, atanan tüm değerlerden sonra ben de bir kerede çıkarım. Yani temelde kod şöyle:
a=b;
yazdır (a);
Yazdır(b);
Ama a sıfır çıktı ve b doğru çıktı
Yani tüm atanan değerlerden sonra ben de aynı anda çıkarım. Yani temelde kod şöyle:
a=b;
yazdır(a);
Yazdır(b);
Ama a sıfır çıktı ve b doğru çıktı
Sıfır görmüyorum, bir yerde hata yaptın