Diyelim ki 2 gösterge var, birincisi 4 tampon, ikincisi 2 tane var. Bunları grafiğin üzerine atıyorum, data penceresini açıyorum (CTRL + D), listede 0'dan 5'e kadar 6 tampon var. Bu listedeki değeri MQL'de, örneğin 5 arabellekte okuyabilir miyim? iCustom üzerinden istenilen gösterge çok uygun değil. Bu listeden daha uygun. Yaptıklarını biliyorum ama nasıl?
//--- сбросим значение ошибки ResetLastError ();
//--- создадим кнопку if (! ObjectCreate (chart_ID,name, OBJ_BUTTON ,sub_window, 0 , 0 ))
{
Print ( __FUNCTION__ ,
": не удалось создать кнопку! Код ошибки = " , GetLastError ());
return ( false );
}
Bu neden nesneler için yapılır? Nesnenin yaratılamama olasılığı nedir?
Genel olarak, mql programlamada görgü kurallarını nerede okuyabileceğinizle ilgileniyorum, tırmıkların hangi çalılıklarda yattığını bilmek için tavsiyede bulunun.
Bu neden nesneler için yapılır? Nesnenin yaratılamama olasılığı nedir?
Genel olarak, mql programlamada görgü kurallarını nerede okuyabileceğinizle ilgileniyorum, tırmıkların hangi çalılıklarda yattığını bilmek için tavsiyede bulunun.
Örneğin, aynı ada sahip bir nesne zaten var.
Ve görgü kuralları her dil için aynıdır. Veri alırsınız - neye sahip olduğunuzu kontrol edin, bir nesne yaratın, ne yarattığınızı ve yaratıp yaratmadığınızı kontrol edin ... Vb.
Bu formatta 4 boyutlu bir dizi nasıl değerlerle doldurulur int Mas[1][2][2][2], bu dizinin her hücresine nasıl değer atanır , yani böyle bir kayıttan bahsediyorum, örneğin , 2 boyutlu bir dizi var int Arr[1][2]={ 3,4};, 4 boyutlu olan nasıl doldurulacak?
Artyom Trishkin : Örneğin, aynı ada sahip bir nesne zaten var.
Ve görgü kuralları her dil için aynıdır. Veri alırsınız - neye sahip olduğunuzu kontrol edin, bir nesne yaratın, ne yarattığınızı ve yaratıp yaratmadığınızı kontrol edin ... Vb.
Bir fonksiyon içinde bir buton oluşturduğumda, küfrediyorum.
return ( false );
'return' - 'void' işlevi bir değer döndürürbreakeven_fish.mq5112on altı
Seric29 : Bu formatta 4 boyutlu bir dizi nasıl değerlerle doldurulur int Mas[1][2][2][2], bu dizinin her hücresine nasıl değer atanır , yani böyle bir kayıttan bahsediyorum, örneğin , 2 boyutlu bir dizi var int Arr[1][2]={ 3,4};, 4 boyutlu olan nasıl doldurulacak?
çok boyutlu diziler genellikle döngülerde gerekli değerlerle doldurulur - hata yapmak daha zordur, dört boyutlu bir dizi için bunun gibi bir şey olmalıdır, ancak yanılıyor olabilirim:
Yoldaşlar - doğruluk göstergesine bakın. Değer = (Open[0]-SMA(P,n))/SMA(P,n))*%100 formülü vardır.
Grafiği çiziyorum - her şey sayılır ve çizilir. Hesap makinesindeki herhangi bir çubuğun değerini kontrol etmeye başlıyorum - çizilenle eşleşmiyor...
İşte bir örnek, Açık 1.0178, MA(13) 1.0182 hesap makinesine ((1.0178-1.0182)/1.0182) * %100 - hesap makinesinin sonucu olarak -0.0393'e göre güveniyorum. Ve MT4 grafiğinde -0.0929. Kodda bir hata mı var yoksa hesap makinesi orada herhangi bir değeri doğru hesaplamıyor mu? Lütfen yardım et. Gösterge ektedir.
#property indicator_separate_window#property indicator_buffers1// Количество буферов#property indicator_color1 Blue // Цвет линии 0 буфера#property indicator_level11#property indicator_level2 - 1//--------------------------------------------------------------- 2 --//---- indicator parameters externint History = 5000 ; // Колич.баров в расчётной историиexternint Period_SMA = 13 ;
double
Line_0[]; // Инд. массив ravi //--------------------------------------------------------------- 4 --int init() // Специальная функция init()
{
SetIndexBuffer ( 0 ,Line_0); // Назначение массива буферу
SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ); // Стиль линии
IndicatorShortName( "KRI" );
//--------------------------------------------------------------- 5 --return ( 0 ); // Выход из спец. функции init()
}
//--------------------------------------------------------------- 8 --int start() // Специальная функция start()
{
//--------------------------------------------------------------- 9 --double
SMA; // МА для расчета значений индикатора // формyла (PRICE-SMA/SMA)*100); int
i, // Индекс бара
n, // Формальн. параметр(индекс бара)
Counted_bars; // Количество просчитанных баров //-------------------------------------------------------------- 10 --
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i= Bars -Counted_bars- 1 ; // Индекс первого непосчитанногоif (i>History- 1 ) // Если много баров то ..
i=History- 1 ; // ..рассчитывать заданное колич.//-------------------------------------------------------------- 11 --while (i>= 0 ) // Цикл по непосчитанным барам
{
//-------------------------------------------------------- 12 --
SMA= iMA ( NULL , 0 ,Period_SMA, 0 , MODE_SMA , PRICE_CLOSE ,i); // Значение SМА
Line_0[i] = 0 ;
if (SMA> 0 ) Line_0[i] = ((Open[ 0 ]-SMA)/SMA)* 100 ; // Индик. массив линии KPI//-------------------------------------------------------- 13 --
i--; // Расчёт индекса следующего бара//-------------------------------------------------------- 14 --
}
return ( 0 ); // Выход из спец. ф-ии start()
}
//-------------------------------------------------------------- 15 --
Merhaba.
Diyelim ki 2 gösterge var, birincisi 4 tampon, ikincisi 2 tane var. Bunları grafiğin üzerine atıyorum, data penceresini açıyorum (CTRL + D), listede 0'dan 5'e kadar 6 tampon var. Bu listedeki değeri MQL'de, örneğin 5 arabellekte okuyabilir miyim? iCustom üzerinden istenilen gösterge çok uygun değil. Bu listeden daha uygun. Yaptıklarını biliyorum ama nasıl?
Bir nesnenin oluşturulmasının sürekli olarak bir kontrolle yapıldığı yardımdaki örnekleri inceliyorum:
Bu neden nesneler için yapılır? Nesnenin yaratılamama olasılığı nedir?
Genel olarak, mql programlamada görgü kurallarını nerede okuyabileceğinizle ilgileniyorum, tırmıkların hangi çalılıklarda yattığını bilmek için tavsiyede bulunun.
Bir nesnenin oluşturulmasının sürekli olarak bir kontrolle yapıldığı yardımdaki örnekleri inceliyorum:
Bu neden nesneler için yapılır? Nesnenin yaratılamama olasılığı nedir?
Genel olarak, mql programlamada görgü kurallarını nerede okuyabileceğinizle ilgileniyorum, tırmıkların hangi çalılıklarda yattığını bilmek için tavsiyede bulunun.
Örneğin, aynı ada sahip bir nesne zaten var.
Bir fonksiyon içinde bir buton oluşturduğumda, küfrediyorum.
'return' - 'void' işlevi bir değer döndürür breakeven_fish.mq5 112 on altı
Bu durumda nasıl olunur?
Bu formatta 4 boyutlu bir dizi nasıl değerlerle doldurulur int Mas[1][2][2][2], bu dizinin her hücresine nasıl değer atanır , yani böyle bir kayıttan bahsediyorum, örneğin , 2 boyutlu bir dizi var int Arr[1][2]={ 3,4};, 4 boyutlu olan nasıl doldurulacak?
çok boyutlu diziler genellikle döngülerde gerekli değerlerle doldurulur - hata yapmak daha zordur, dört boyutlu bir dizi için bunun gibi bir şey olmalıdır, ancak yanılıyor olabilirim:
Bir fonksiyon içinde bir buton oluşturduğumda, küfrediyorum.
'return' - 'void' işlevi bir değer döndürür breakeven_fish.mq5 112 on altı
Bu durumda nasıl olunur?
yardımı okumaya başlayın https://www.mql5.com/en/docs/basis/function
bunlar dilin temelleri, eğer yeterli yardım yoksa, o zaman C ++ ile ilgili herhangi bir kitap, ilk bölümde, hangi işlevlerin açıklanması gerekir
Bir fonksiyon içinde bir buton oluşturduğumda, küfrediyorum.
'return' - 'void' işlevi bir değer döndürür breakeven_fish.mq5 112 on altı
Bu durumda nasıl olunur?
Yoldaşlar - doğruluk göstergesine bakın. Değer = (Open[0]-SMA(P,n))/SMA(P,n))*%100 formülü vardır.
Grafiği çiziyorum - her şey sayılır ve çizilir. Hesap makinesindeki herhangi bir çubuğun değerini kontrol etmeye başlıyorum - çizilenle eşleşmiyor...
İşte bir örnek, Açık 1.0178, MA(13) 1.0182 hesap makinesine ((1.0178-1.0182)/1.0182) * %100 - hesap makinesinin sonucu olarak -0.0393'e göre güveniyorum. Ve MT4 grafiğinde -0.0929. Kodda bir hata mı var yoksa hesap makinesi orada herhangi bir değeri doğru hesaplamıyor mu? Lütfen yardım et. Gösterge ektedir.
Bir işlevden bool türünde bir değer döndürürseniz, işlevin türünün geçersiz kılınması gerekmez, ancak tahmin edin hangisi.
Bir işlevden veri döndürmeniz gerekirse ne olur?
Her seferinde PositionsTotal kullanmadan yalnızca belirli bir karakter için konumlar üzerinde yineleme yapmak mümkün müdür?
Şimdiye kadar aklıma gelen tek şey, bir diziye bilet yazmak ve onlarla ayrı ayrı çalışmak, ama belki daha kolay bir seçenek var mı?
Bir işlevden veri döndürmeniz gerekirse ne olur?
Her seferinde PositionsTotal'ı kullanmadan yalnızca belirli bir sembol için konumlar üzerinde yineleme yapmak mümkün müdür?
Şimdiye kadar aklıma gelen tek şey, bir diziye bilet yazmak ve onlarla ayrı ayrı çalışmak, ama belki daha kolay bir seçenek var mı?
Sonunda neyin gerekli olduğu belli değil - bazı dağınık düşünceler.