//+------------------------------------------------------------------+//| 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[])
{
//--- Проверка количества доступных баров (1 - минимально, 4 - оптимально для большинства расчётов. Но всё "по месту"...)if (rates_total< 4 ) return0 ;
//--- Проверка и расчёт количества просчитываемых баровint limit=rates_total-prev_calculated; // 0 - пришел новый тик, новый бар формироваться не начал. 1 - пришел новый тик и начал формироваться новый бар.if (limit> 1 )
// если вписать "limit>0", то на нулевом баре будет расчёт только нулевого бара, на каждом новом баре будет полный перерасчёт всей истории// если вписать "limit>1", то на нулевом баре будет расчёт только нулевого бара, на открытии нового бара - пересчёт первого и нулевого,// при подгрузке истории и на первом запуске - перерасчёт всей истории
{
limit=rates_total- 1 ;
// здесь должна быть инициализация всех используемых буферов индикатора необходимыми значениями (обычно EMPTY_VALUE и 0)
}
//--- Расчёт индикатораfor ( int i=limit; i>= 0 && ! IsStopped (); i--)
{
// необходимые действия по расчёту индикатора
}
//--- return value of prev_calculated for next callreturn (rates_total);
}
//+------------------------------------------------------------------+
Bazı durumlarda, herhangi bir nedenle fiyat, noktadan sonra herhangi bir yönde iki önemli rakamın boyutunu aşıyor.
Ve bu, hesaplamalarda herhangi bir hata olmadan gerçekleşir, bu sadece grafik tabanındaki fiyat değerinin çıktısıdır tmp1[i]=close[i];
Bu bir şekilde üstesinden gelinebilir mi yoksa görmezden gelinebilir mi?
bunlar gerçek bir sayı için olağan değerlerdir, program yazmayı öğrenebilirsiniz, herkes bununla başlar - sadece çok okumanız ve kendi kodlarınızı yazıp yazmaya çalışmanız gerekir
gerçek bir sayının doğruluğu, peygamber devesi ve hepsinin bellekte nasıl saklandığı hakkında, internette google'a bakabilirsiniz, depolama ilkeleri her yerde aynıdır
güzel çıktılar istiyorsanız DoubleToStr() kullanın
bunlar gerçek bir sayı için olağan değerlerdir, program yazmayı öğrenebilirsiniz, herkes bununla başlar - sadece çok okumanız ve kendi kodlarınızı yazıp yazmaya çalışmanız gerekir
gerçek bir sayının doğruluğu, peygamber devesi ve hepsinin bellekte nasıl saklandığı hakkında, internette google'a bakabilirsiniz, depolama ilkeleri her yerde aynıdır
güzel çıktılar istiyorsanız DoubleToStr() kullanın
Uyumlu işlevleri kullanmanın mümkün olduğu durumlarda, bunları kullanıma sunmak daha iyidir. Ve sonra bu destan yeniden başlayacak. Bu durumda: DoubleToString()
Aynı enstrümanlar üzerinde bir danışmanın görevlendirilmesini yasaklamak nasıl mümkün olabilir?
Örneğin, danışman eur/usd penceresinde çalışır ve eur/usd için diğer pencerelerde başlatıldığında bazı uyarı mesajları görüntülenir. Yardım için minnettar olacağım.
Aynı enstrümanlar üzerinde bir danışmanın görevlendirilmesini yasaklamak nasıl mümkün olabilir?
Örneğin, danışman eur/usd penceresinde çalışır ve eur/usd için diğer pencerelerde başlatıldığında bazı uyarı mesajları görüntülenir. Yardım için minnettar olacağım.
forumda arama yaparak verileri bir danışmandan diğerine aktarmanız gerekir
veya terminalin global değişkenlerini kullanın (bu en kolay yoldur) - oraya ilk Expert Advisor tarafından değeri yazabilirsiniz ve Expert Advisor'ların sonraki kopyaları bu değeri okuyacak ve https://www. mql5.com/en/docs/globals
Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной.
forumda arama yaparak verileri bir danışmandan diğerine aktarmanız gerekir
veya terminalin global değişkenlerini kullanın (bu en kolay yoldur) - oraya ilk Expert Advisor tarafından değeri yazabilirsiniz ve Expert Advisor'ların sonraki kopyaları bu değeri okuyacak ve https://www. mql5.com/en/docs/globals
danışman aynı, aynı enstrümanlarda çalışmasını yasaklamanız gerekiyor
gans71 : danışman aynı, aynı enstrümanlarda çalışmasını yasaklamanız gerekiyor
ve? 2 dakika içinde sertifikayı çalışamadın
özellikle bir dizgenin global bir değişkene nasıl aktarılacağıyla ilgiliyse, o zaman tek yol global bir değişken adı oluşturmaktır, yani. sizin durumunuzda, EURUSD'de bir danışman başlattı, kontrol edin:
if(GlobalVariableCheck(_Symbol)) .....
böyle bir değişken yoksa, böyle bir değişken oluşturun, bunun gibi bir şey:
if(GlobalVariableSet(_Symbol,Magic)==0) Print("Genel # değişkenine yazma hatası ",GetLastError());
o zaman EA sona erdiğinde global değişkeni silmeniz gerekir.
bir şekilde, terminal el altında değil ve görünüşe göre aramanın yönünü belirttim
Son cevaplardan sonra, resim netleşmeye başladı ve en bariz olan şey, programcı olmak benim kaderim değil :-)
Şimdiye kadar en basit listeyle başladım ve ortaya çıkan şu oldu:
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[0] = 85.72 2018.10.19 00:00:00
Bazı durumlarda, herhangi bir nedenle fiyat, noktadan sonra herhangi bir yönde iki önemli rakamın boyutunu aşıyor.
Ve bu, hesaplamalarda herhangi bir hata olmadan gerçekleşir, bu sadece grafik tabanındaki fiyat değerinin çıktısıdır tmp1[i]=close[i];
Bu bir şekilde üstesinden gelinebilir mi yoksa görmezden gelinebilir mi?
Ondan beşle ilgili her şeyi atabilir ve dördü için bir şablon alabilirsiniz.
Bu, beşin dörtten nasıl farklı olduğunu bilenlere yazılabilir ve kesinlikle ben değilim :-)
4 sayısı nereden geldi, kutsal anlamı nedir?
Bu, beşin dörtten nasıl farklı olduğunu bilenlere yazılabilir ve kesinlikle ben değilim :-)
4 sayısı nereden geldi, kutsal anlamı nedir?
Kesinlikle dinlemiyorsun, okumuyorsun... Aynıydı:
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu
Artyom Trishkin , 2018.10.18 09:26
Son cevaplardan sonra, resim netleşmeye başladı ve en bariz olan şey, programcı olmak benim kaderim değil :-)
Şimdiye kadar en basit listeyle başladım ve ortaya çıkan şu oldu:
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[0] = 85.72 2018.10.19 00:00:00
Bazı durumlarda, herhangi bir nedenle fiyat, noktadan sonra herhangi bir yönde iki önemli rakamın boyutunu aşıyor.
Ve bu, hesaplamalarda herhangi bir hata olmadan gerçekleşir, bu sadece grafik tabanındaki fiyat değerinin çıktısıdır tmp1[i]=close[i];
Bu bir şekilde üstesinden gelinebilir mi yoksa görmezden gelinebilir mi?
Herşey yolunda. Kesirli sayıları yazdırmak için DoubleToString()'i gerekli hassasiyetle kullanmanız yeterlidir . Bu durumda, gerekli kesinlik Digits() olmalıdır.
Son cevaplardan sonra, resim netleşmeye başladı ve en bariz olan şey, programcı olmak benim kaderim değil :-)
Şimdiye kadar en basit listeyle başladım ve ortaya çıkan şu oldu:
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[4] = 86.09999999999999 2018.10.15 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[3] = 85.98999999999999 2018.10.16 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[2] = 86.76000000000001 2018.10.17 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[1] = 86.5 2018.10.18 00:00:00
2018.10.20 08:42:43.343 _t1 CADJPY,Günlük: tmp1[0] = 85.72 2018.10.19 00:00:00
Bazı durumlarda, herhangi bir nedenle fiyat, noktadan sonra herhangi bir yönde iki önemli rakamın boyutunu aşıyor.
Ve bu, hesaplamalarda herhangi bir hata olmadan gerçekleşir, bu sadece grafik tabanındaki fiyat değerinin çıktısıdır tmp1[i]=close[i];
Bu bir şekilde üstesinden gelinebilir mi yoksa görmezden gelinebilir mi?
bunlar gerçek bir sayı için olağan değerlerdir, program yazmayı öğrenebilirsiniz, herkes bununla başlar - sadece çok okumanız ve kendi kodlarınızı yazıp yazmaya çalışmanız gerekir
gerçek bir sayının doğruluğu, peygamber devesi ve hepsinin bellekte nasıl saklandığı hakkında, internette google'a bakabilirsiniz, depolama ilkeleri her yerde aynıdır
güzel çıktılar istiyorsanız DoubleToStr() kullanın
bunlar gerçek bir sayı için olağan değerlerdir, program yazmayı öğrenebilirsiniz, herkes bununla başlar - sadece çok okumanız ve kendi kodlarınızı yazıp yazmaya çalışmanız gerekir
gerçek bir sayının doğruluğu, peygamber devesi ve hepsinin bellekte nasıl saklandığı hakkında, internette google'a bakabilirsiniz, depolama ilkeleri her yerde aynıdır
güzel çıktılar istiyorsanız DoubleToStr() kullanın
Uyumlu işlevleri kullanmanın mümkün olduğu durumlarda, bunları kullanıma sunmak daha iyidir. Ve sonra bu destan yeniden başlayacak. Bu durumda: DoubleToString()
Aynı enstrümanlar üzerinde bir danışmanın görevlendirilmesini yasaklamak nasıl mümkün olabilir?
Örneğin, danışman eur/usd penceresinde çalışır ve eur/usd için diğer pencerelerde başlatıldığında bazı uyarı mesajları görüntülenir. Yardım için minnettar olacağım.
Aynı enstrümanlar üzerinde bir danışmanın görevlendirilmesini yasaklamak nasıl mümkün olabilir?
Örneğin, danışman eur/usd penceresinde çalışır ve eur/usd için diğer pencerelerde başlatıldığında bazı uyarı mesajları görüntülenir. Yardım için minnettar olacağım.
forumda arama yaparak verileri bir danışmandan diğerine aktarmanız gerekir
veya terminalin global değişkenlerini kullanın (bu en kolay yoldur) - oraya ilk Expert Advisor tarafından değeri yazabilirsiniz ve Expert Advisor'ların sonraki kopyaları bu değeri okuyacak ve https://www. mql5.com/en/docs/globals
forumda arama yaparak verileri bir danışmandan diğerine aktarmanız gerekir
veya terminalin global değişkenlerini kullanın (bu en kolay yoldur) - oraya ilk Expert Advisor tarafından değeri yazabilirsiniz ve Expert Advisor'ların sonraki kopyaları bu değeri okuyacak ve https://www. mql5.com/en/docs/globals
danışman aynı, aynı enstrümanlarda çalışmasını yasaklamanız gerekiyor
ve? 2 dakika içinde sertifikayı çalışamadın
özellikle bir dizgenin global bir değişkene nasıl aktarılacağıyla ilgiliyse, o zaman tek yol global bir değişken adı oluşturmaktır, yani. sizin durumunuzda, EURUSD'de bir danışman başlattı, kontrol edin:
if(GlobalVariableCheck(_Symbol)) .....
böyle bir değişken yoksa, böyle bir değişken oluşturun, bunun gibi bir şey:
if(GlobalVariableSet(_Symbol,Magic)==0) Print("Genel # değişkenine yazma hatası ",GetLastError());
o zaman EA sona erdiğinde global değişkeni silmeniz gerekir.
bir şekilde, terminal el altında değil ve görünüşe göre aramanın yönünü belirttim