Beyler, tüm profesyonellere ve nasıl yapılacağını bilenlere merhaba!
Bir göstergeden veri almakla ilgili bir sorunum var - lütfen bana yardım edin, kim yapabilir....
Fonksiyon Hedefi: Belirtilen dönem için"Bollinger Bantları" göstergesinin dış çizgileri arasındaki ortalama mesafeyi nokta cinsinden hesaplayın.
Sorunun özü: Belirtilen çubuk için gösterge çizgilerindeki fiyatın gerçek değerlerini alamıyorum, çünkü bazı nedenlerden dolayı aynı fiyat değeri göstergenin farklı arabelleklerine yazılıyor ve bu da gerçek değerlere karşılık gelmiyor. bu çubuktaki çizgilerden herhangi biri. Ve sonuç olarak, bilinmeyen bir fiyat değeri farklı arabelleklere (farklı isteklerde) yazılır ve bu da işlevin tüm diğer çalışmalarını geçersiz kılar. Ayrıca, bu işlevdeki ile tamamen aynı yöntemi kullanarak, diğer göstergelerden göstergeler alabildim, ancak burada çalışmıyor....
int Bollinger_Bands(int _Average_Period, int _Number)
{
double Buffer_BASE_LINE[]; // Массив Буффера Линии BASE_LINEdouble Buffer_UPPER_BAND[]; // Массив Буффера Линии UPPER_BANDdouble Buffer_LOWER_BAND[]; // Массив Буффера Линии LOWER_BANDint Bar_Cash = _Average_Period; // Количество плучаемых значений от индикатораint Bands_Handel = 0; // Хендл индикатора Bollinger_Bands//---//double Base_Line = 0; // Значение линии BASE_LINEdouble Upper_Line = 0; // Значение линии UPPER_BANDdouble Lower_Line = 0; // Значение линии LOWER_BAND//---//double Band_Size_Buffer[];// Буфер расчётных значений разницы между линиями индикатора
int Band_Size_Total = 0;// Итог среднего значения расстояния между линиями в пунктах
ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE; // тип цены //---//ArrayResize(Band_Size_Buffer,_Average_Period+1);
ArrayResize(Buffer_UPPER_BAND,_Average_Period+1);
ArrayResize(Buffer_LOWER_BAND,_Average_Period+1);
//---//
Bands_Handel = iBands(_Symbol,PERIOD_CURRENT,20,2,0,applied_price);
//---// CopyBuffer(Bands_Handel,0,_Number,_Average_Period,Buffer_BASE_LINE); ArraySetAsSeries(Buffer_BASE_LINE,true);
CopyBuffer(Bands_Handel,1,_Number,_Average_Period,Buffer_UPPER_BAND); ArraySetAsSeries(Buffer_UPPER_BAND,true);
CopyBuffer(Bands_Handel,2,_Number,_Average_Period,Buffer_LOWER_BAND); ArraySetAsSeries(Buffer_LOWER_BAND,true);
//---////---// Тут получение значений для выбранного номера бара из переменной которая передаётся в функцию (использовал как проверку получения данных по линиям)
Base_Line = NormalizeDouble(Buffer_BASE_LINE[_Number], _Digits); //Alert("Base_Line[",_Number,"] = ",Base_Line);
Upper_Line = NormalizeDouble(Buffer_UPPER_BAND[_Number], _Digits); //Alert("Upper_Line[",_Number,"] = ",Upper_Line);
Lower_Line = NormalizeDouble(Buffer_LOWER_BAND[_Number], _Digits); //Alert("Lower_Line[",_Number,"] = ",Lower_Line);//---////---// ** А это расчёт среднего расстояния между внешними линиями Боллинджера за указанный период. Получается 0 потому что одно число отнимается само от себя.for(int i=_Average_Period; i>=0; i--) {
//---//
Upper_Line = NormalizeDouble(Buffer_UPPER_BAND[i], _Digits); //Alert("Upper_Line[",i,"] = ",Upper_Line);
Lower_Line = NormalizeDouble(Buffer_LOWER_BAND[i], _Digits); //Alert("Lower_Line[",i,"] = ",Lower_Line);//---//
Band_Size_Buffer[i] = NormalizeDouble( ((Upper_Line - Lower_Line) / _Point), 2); //Alert("Band_Size_Buffer[",i,"] = ",Band_Size_Buffer[i]);
}//---//
Band_Size_Total = (int) MathMean(Band_Size_Buffer);
//---//return(Band_Size_Total);
}
Standart kütüphanenin kullanımıyla ilgili bir karışıklık var. Standart kütüphaneyi kullanarak bir sipariş açtıktan sonra bilet nasıl alınır? Sunucu yanıtının burada zaten alındığından emin olabilir miyim? Sunucudan yanıt beklerken terminal kilitleniyor mu? Bu açık değil.
Nauris Zukas Standart kütüphanenin kullanımıyla ilgili bir karışıklık var. Standart kütüphaneyi kullanarak bir sipariş açtıktan sonra bilet nasıl alınır? Sunucu yanıtının burada zaten alındığından emin olabilir miyim? Sunucudan yanıt beklerken terminal kilitleniyor mu? Anlamıyorum.
Teşekkür ederim! O zaman birkaç işlevi yeniden yapmam gerekecek.
Bir yerlerde mql5 üzerinde kaymayı hesaplayan bir fonksiyon gördünüz mü?
Neden arıyorsunuz? OnTradeTransaction'da emir verme olayını yakalar, emir fiyatını okur, ardından işlemi yakalar, işlem fiyatını okur ve bu fiyatların farkını alırsınız.
Ayrıca küresel düzeyde bir değişken oluşturabilir, emri gönderirken fiyatı içine yazabilir ve OnTradeTransaction'da işlemin fiyatını alabilirsiniz...
Ayrıca global düzeyde bir değişken oluşturabilir, emir gönderildiğinde fiyatı içine yazabilir ve OnTradeTransaction 'da işlemin fiyatını alabilirsiniz....
Bu seçenek kesinlikle devre dışıdır. Çok sayıda emir gönderirsem bilet olmadan bir fiyata ne ihtiyacım var, OnTradeTransaction bununla nasıl başa çıkacak?
Bu seçenek kesinlikle devre dışı. Çok sayıda emir gönderirsem bilet olmadan ne fiyatlandırırım, OnTradeTransaction bununla nasıl başa çıkacak?
Pozisyon kimliğine göre herhangi bir sorun olmadan sıralanacaktır.
Bir işlem alırsınız, ondan pozisyon kimliği alırsınız, bu kimliğe göre geçmişten emirleri ve işlemleri çekersiniz ve emir ve işlem fiyatlarını IN olarak okursunuz.
Belgeleri okuyun. Orada pek çok ilginç şey bulabilirsiniz.
Bir işlem alırsınız, ondan pozisyon kimliğini alırsınız, bu kimliğe göre geçmişten emirleri ve işlemleri çekersiniz ve emir ve işlem fiyatlarını IN olarak okursunuz.
Her şey açık! Ancak, bir emir gönderirken kaydedilen fiyatla ikinci seçenek, global düzeyde ve ardından OnTradeTransaction'da işlemin fiyatını almak... bu benim için net değil. Neden emri gönderirken (emre) bağlı olmayan bir fiyatı kaydedelim?
Kısacası, bu şekilde yapacağım - işlemi alın, sonra diğer her şeyi çıkarın.
Adam Dee "Bollinger Bantları" göstergesinin dış çizgileri arasındaki ortalama mesafeyi nokta cinsinden hesaplayın.
Sorunun özü: Belirtilen çubuk için gösterge satırlarındaki fiyatın gerçek değerlerini alamıyorum, çünkü bazı nedenlerden dolayı aynı fiyat değeri göstergenin farklı arabelleklerine yazılıyor ve bu da gerçek değerlere karşılık gelmiyor. bu çubuktaki satırlardan herhangi biri. Ve sonuç olarak, bilinmeyen bir fiyat değeri farklı arabelleklere (farklı isteklerde) yazılır ve bu da işlevin tüm diğer çalışmalarını geçersiz kılar. Ayrıca, bu işlevdeki ile tamamen aynı yöntemi kullanarak, diğer göstergelerden göstergeler alabildim, ancak burada çalışmıyor....
Bolinger, SMA +- N * standart sapmalardır.
Standart sapma ve SMA hakkında kendi göstergeleri vardır. Ancak hepsi onlar olmadan hesaplanır - bir referans kitabı alın ve işte bir formül. Buradan, varsayılan değerlere göre şu anda 4 sigmaya eşit olan "çizgiler arasındaki noktalarda ortalama mesafeyi" bulursunuz. Ve ortalama (hangi dönem için?), hesaplamak için zahmet ediyor musunuz?
Fiilen standart sapmanın ortalamasını bilmek istiyorsunuz.
Bu açık! Ancak, emri gönderirken fiyatı global düzeyde kaydetme ve ardından OnTradeTransaction'da işlemin fiyatını alma şeklindeki ikinci seçenek... bu benim için net değil. Neden emri gönderirken (emre) bağlı olmayan bir fiyatı kaydedelim?
Kısacası, bu şekilde yapacağım - ticareti yapın, sonra diğer her şeyi çıkarın.
Bu, her şeyin zamanında olacağı sakin ticaret hakkında söylendi... Bunu dikkate almadan
Beyler, tüm profesyonellere ve nasıl yapılacağını bilenlere merhaba!
Bir göstergeden veri almakla ilgili bir sorunum var - lütfen bana yardım edin, kim yapabilir....
Fonksiyon Hedefi: Belirtilen dönem için"Bollinger Bantları" göstergesinin dış çizgileri arasındaki ortalama mesafeyi nokta cinsinden hesaplayın.
Sorunun özü: Belirtilen çubuk için gösterge çizgilerindeki fiyatın gerçek değerlerini alamıyorum, çünkü bazı nedenlerden dolayı aynı fiyat değeri göstergenin farklı arabelleklerine yazılıyor ve bu da gerçek değerlere karşılık gelmiyor. bu çubuktaki çizgilerden herhangi biri. Ve sonuç olarak, bilinmeyen bir fiyat değeri farklı arabelleklere (farklı isteklerde) yazılır ve bu da işlevin tüm diğer çalışmalarını geçersiz kılar.
Ayrıca, bu işlevdeki ile tamamen aynı yöntemi kullanarak, diğer göstergelerden göstergeler alabildim, ancak burada çalışmıyor....
Standart kütüphanenin kullanımıyla ilgili bir karışıklık var.
Standart kütüphaneyi kullanarak bir sipariş açtıktan sonra bilet nasıl alınır?
Sunucu yanıtının burada zaten alındığından emin olabilir miyim? Sunucudan yanıt beklerken terminal kilitleniyor mu? Bu açık değil.
MQ4'te her şey basitti:
Standart kütüphaneyi kullanarak bir sipariş açtıktan sonra bilet nasıl alınır?
Sunucu yanıtının burada zaten alındığından emin olabilir miyim? Sunucudan yanıt beklerken terminal kilitleniyor mu? Anlamıyorum.
MQ4'te her şey basitti:
OnTradeTransaction() olay işlemini kullanmak daha iyidir
OnTradeTransaction() olay işleyicisini kullanmak daha iyidir
Teşekkürler! O zaman birkaç fonksiyonu yeniden yapmam gerekecek.
Belki bir yerlerde mql5 üzerinde kaymayı hesaplayan bir fonksiyon görmüşsünüzdür?
Teşekkür ederim! O zaman birkaç işlevi yeniden yapmam gerekecek.
Bir yerlerde mql5 üzerinde kaymayı hesaplayan bir fonksiyon gördünüz mü?
Neden arıyorsunuz? OnTradeTransaction'da emir verme olayını yakalar, emir fiyatını okur, ardından işlemi yakalar, işlem fiyatını okur ve bu fiyatların farkını alırsınız.
Ayrıca küresel düzeyde bir değişken oluşturabilir, emri gönderirken fiyatı içine yazabilir ve OnTradeTransaction'da işlemin fiyatını alabilirsiniz...
Alexey Viktorov #:
Ayrıca global düzeyde bir değişken oluşturabilir, emir gönderildiğinde fiyatı içine yazabilir ve OnTradeTransaction 'da işlemin fiyatını alabilirsiniz....
Bu seçenek kesinlikle devre dışıdır. Çok sayıda emir gönderirsem bilet olmadan bir fiyata ne ihtiyacım var, OnTradeTransaction bununla nasıl başa çıkacak?
Bu seçenek kesinlikle devre dışı. Çok sayıda emir gönderirsem bilet olmadan ne fiyatlandırırım, OnTradeTransaction bununla nasıl başa çıkacak?
Pozisyon kimliğine göre herhangi bir sorun olmadan sıralanacaktır.
Bir işlem alırsınız, ondan pozisyon kimliği alırsınız, bu kimliğe göre geçmişten emirleri ve işlemleri çekersiniz ve emir ve işlem fiyatlarını IN olarak okursunuz.
Belgeleri okuyun. Orada pek çok ilginç şey bulabilirsiniz.
Alexey Viktorov #:
Bir işlem alırsınız, ondan pozisyon kimliğini alırsınız, bu kimliğe göre geçmişten emirleri ve işlemleri çekersiniz ve emir ve işlem fiyatlarını IN olarak okursunuz.
Her şey açık! Ancak, bir emir gönderirken kaydedilen fiyatla ikinci seçenek, global düzeyde ve ardından OnTradeTransaction'da işlemin fiyatını almak... bu benim için net değil. Neden emri gönderirken (emre) bağlı olmayan bir fiyatı kaydedelim?
Kısacası, bu şekilde yapacağım - işlemi alın, sonra diğer her şeyi çıkarın.
Sorunun özü: Belirtilen çubuk için gösterge satırlarındaki fiyatın gerçek değerlerini alamıyorum, çünkü bazı nedenlerden dolayı aynı fiyat değeri göstergenin farklı arabelleklerine yazılıyor ve bu da gerçek değerlere karşılık gelmiyor. bu çubuktaki satırlardan herhangi biri. Ve sonuç olarak, bilinmeyen bir fiyat değeri farklı arabelleklere (farklı isteklerde) yazılır ve bu da işlevin tüm diğer çalışmalarını geçersiz kılar.
Ayrıca, bu işlevdeki ile tamamen aynı yöntemi kullanarak, diğer göstergelerden göstergeler alabildim, ancak burada çalışmıyor....
Bolinger, SMA +- N * standart sapmalardır.
Standart sapma ve SMA hakkında kendi göstergeleri vardır. Ancak hepsi onlar olmadan hesaplanır - bir referans kitabı alın ve işte bir formül. Buradan, varsayılan değerlere göre şu anda 4 sigmaya eşit olan "çizgiler arasındaki noktalarda ortalama mesafeyi" bulursunuz.
Ve ortalama (hangi dönem için?), hesaplamak için zahmet ediyor musunuz?
Fiilen standart sapmanın ortalamasını bilmek istiyorsunuz.
Bu açık! Ancak, emri gönderirken fiyatı global düzeyde kaydetme ve ardından OnTradeTransaction'da işlemin fiyatını alma şeklindeki ikinci seçenek... bu benim için net değil. Neden emri gönderirken (emre) bağlı olmayan bir fiyatı kaydedelim?
Kısacası, bu şekilde yapacağım - ticareti yapın, sonra diğer her şeyi çıkarın.
Bu, her şeyin zamanında olacağı sakin ticaret hakkında söylendi... Bunu dikkate almadan
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum
Yeni başlayanlardan gelen sorular MQL5 MT5 MetaTrader 5
Nauris Zukas, 2022.06.11 17:49
Bu seçenek kesinlikle devre dışı. Çok sayıda sipariş gönderirsem, bilet olmadan benim için fiyat nedir, OnTradeTransaction bununla nasıl başa çıkacak?