Belirli hesaplamalar yapan bir EA'm var. Farklı mat işlemleri, diziler, döngüler kullanır. Sonuç bir dosyaya yazılır . Tüm adımları tamamladıktan sonra her şeye en baştan başlamalıdır. Ancak tüm hesaplamaları bir kez yapıyor ve ikinci kez başlayıp donuyor, hiçbir işlem olmuyor. Söylesene, belki yeni bir hesaplamaya başlamadan önce değişkenleri sıfırlamanız, dizileri temizlemeniz veya başka bir şey mi gerekiyor?
Tünaydın! Bunun gibi en küçük bilgiyle bir gösterge yapmaya çalışan bir insancıldan (ben) yardıma ihtiyacım var))) ama neyin görünmesi gerektiğine dair bir anlayış var)) Ve böylece: MT4 için bir koltuk değneği/gösterge/komut dosyası ("About, General, Input Parameters, Colors, Display" sekmeleriyle birlikte bir gösterge biçiminde) nasıl programlanır, böylece bu tür verileri bir .csv dosyasından alır, örneğin, kaynak dosyanın formatı:
EUR;TF;1.192;1.1733
EUR;TN;1.2037;1.1663
EUR;AB1;1.1906499615;1.1797479615
CHF;TF;1.0362;1.0183
CHF;TN;1.0479;1.0121
CHF;AB1;1.03484132734247;1.02549513556164
Onlar. gösterge, kaydedilen verileri dosyadan aldı veuzunluk parametreleri tam olarak "gün" (sınırdan sınıra) ile segmentler (TF, TA) veya renkli bir aralık (EA) şeklinde çizelgeye bir yorumla ekledi MT4'teki günlerin dikey ayırıcılarından, satırlar için satırın rengini, satır türünü, metin rengi ve yorum boyutunu seçin ve satıra bir yorum bölümünün değiştirilmesini, örneğin "TF" biçiminde seçin. - 1,192" ikinci satır "TF - 1,1733" dosyanın ilgili satırlarından alınmıştır. Aynı zamanda, segment tamamen yataydır ve EUR;TF;1.192;1.1733 satırından itibaren, bir segment için tam olarak ilk haneyi ve ikinci segment için ikinci haneyi, segment 1.192'nin başlangıcı olarak yatay çizgisi olarak alır ve bitiş 1.192. Ayrıca aralıklar da vardır, örneğin EA, ilke günün başından sonuna kadar aynıdır, ancak fiyat parametresi farklıdır ve başlangıç ve bitiş satırı CHF;AB1;1.03484132734247;1.02549513556164 başlangıçtır.1.03484132734247 aralık sonu1.02549513556164. MT4 açıldığında (bir harita üzerinde duran normal bir hindi gibi), her gün grafikte başlar ve tüm verileri tam olarak o günkü bir kez ekler, daha önce çizilen tüm çizgileri grafikten silmez ve çoğaltmaz. Bütün bunlarla, sadece aktif pencerenin şimdi olduğu yerde ve diğer aktif pencerelerde (yani çalıştığı yerde) gün için tüm segmentleri ve aralıkları seçer ve gösterir (yani bir çift açtı ve gösterge tüm segmentleri ve aralıkları çizdi) mevcut gün ve sakinleşti vb. çiftler halinde).
Örneğin, gösterge sekmesi nasıl görünmelidirGiriş parametreleri:
Değişken________Değer
Funtik________//--Genel ayarlar--//
TF_______true çizin
TN _______true çizin
AB1______true çizin
AB2______yanlış çiz
Metin yazılarının rengi _______Siyah
İmza yazı tipi__________________Arial
Metin başlıklarının yazı tipi boyutu ________9
Çizgi Rengi TF ______________
Hat tipi TF _______________
Çizgi rengi TN ______________
Hat türü TN _______________
Aralık Renk AB1__________
Aralık rengi AB2__________
Saniye cinsinden dosya yoklama sıklığı ______2
Dosya adı ____________5.csv
Kendim karalamaya çalıştım ama olmuyor, kolay gibi görünse de (peki ben hümanistim, ne yapabilirim...) Lütfen boğulan bir adama yardım edin !!!!!!! !
çifte ödül = teklif; //Mevcut fiyat double CurrMAValue = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0); // hareketli ortalama değer çift Fiyat2MA = fiyat - CurrMAValue; // MA'nın fiyata olan uzaklığı datetime NextClose = Time(0) + Period()*60*2; //kapanma zamanı int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1; // dakikalar içinde kapanma zamanı
if ((MathAbs(Price2MA) < Delta) && // MA'ya olan uzaklık deltadan küçükse (Fiyat > CurrMAValue) && // ve fiyat MA'nın üzerinde (Open(0) > CurrMAValue+Delta)) // ve mevcut mum MA+Delta'dan daha yüksek açıldı ( Uyarı ("Fiyat MA'ya yukarıdan yaklaştı"); )
if ((MathAbs(Price2MA) < Delta) && // MA'ya olan uzaklık deltadan küçükse (fiyat < CurrMAValue) && // ve fiyat MA'nın altındadır (Open(0) < CurrMAValue-Delta)) // ve mevcut mum MA-delta'nın altında açıldı (
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Куда исчезли "Сообщения"? У меня в профиле исчез раздел...
Lütfen, hacmin (lot) yanlışlıkla negatif bir değeri ayarlandığında Expert Advisor'daki FreeMarginCheck işlev hatası için geçersiz lot miktarını nasıl düzelteceğimi söyleyin. Test cihazında hata mesajı olmadan yanlış parti hakkında mesaj almak
prev_calculated - global olarak (veya statik olarak) bildirerek ve mevcut yinelemede gerçekten hesaplanan çubuk sayısını buna yazarak kendiniz bir analog yapın. Yani, gösterge değerlerinin başarılı bir şekilde hesaplanmasından sonra, içine mevcut çubukların sayısını yazmanız gerekir. Hesaplamalar başarısız olursa, bir sonraki yinelemede geçmişteki her çubuktaki gösterge değerlerini yeniden hesaplamak için sıfırlamak daha iyidir.
Tünaydın!
Belirli hesaplamalar yapan bir EA'm var. Farklı mat işlemleri, diziler, döngüler kullanır. Sonuç bir dosyaya yazılır . Tüm adımları tamamladıktan sonra her şeye en baştan başlamalıdır. Ancak tüm hesaplamaları bir kez yapıyor ve ikinci kez başlayıp donuyor, hiçbir işlem olmuyor. Söylesene, belki yeni bir hesaplamaya başlamadan önce değişkenleri sıfırlamanız, dizileri temizlemeniz veya başka bir şey mi gerekiyor?
Dosyayı kapatmayı denediniz mi?
MT4 için bir koltuk değneği/gösterge/komut dosyası ("About, General, Input Parameters, Colors, Display" sekmeleriyle birlikte bir gösterge biçiminde) nasıl programlanır, böylece bu tür verileri bir .csv dosyasından alır, örneğin , kaynak dosyanın formatı:
Onlar. gösterge, kaydedilen verileri dosyadan aldı ve uzunluk parametreleri tam olarak "gün" (sınırdan sınıra) ile segmentler (TF, TA) veya renkli bir aralık (EA) şeklinde çizelgeye bir yorumla ekledi MT4'teki günlerin dikey ayırıcılarından, satırlar için satırın rengini, satır türünü, metin rengi ve yorum boyutunu seçin ve satıra bir yorum bölümünün değiştirilmesini, örneğin "TF" biçiminde seçin. - 1,192" ikinci satır "TF - 1,1733" dosyanın ilgili satırlarından alınmıştır. Aynı zamanda, segment tamamen yataydır ve EUR;TF;1.192;1.1733 satırından itibaren, bir segment için tam olarak ilk haneyi ve ikinci segment için ikinci haneyi, segment 1.192'nin başlangıcı olarak yatay çizgisi olarak alır ve bitiş 1.192.
Ayrıca aralıklar da vardır, örneğin EA, ilke günün başından sonuna kadar aynıdır, ancak fiyat parametresi farklıdır ve başlangıç ve bitiş satırı CHF;AB1;1.03484132734247;1.02549513556164 başlangıçtır. 1.03484132734247 aralık sonu 1.02549513556164. MT4 açıldığında (bir harita üzerinde duran normal bir hindi gibi), her gün grafikte başlar ve tüm verileri tam olarak o günkü bir kez ekler, daha önce çizilen tüm çizgileri grafikten silmez ve çoğaltmaz. Bütün bunlarla, sadece aktif pencerenin şimdi olduğu yerde ve diğer aktif pencerelerde (yani çalıştığı yerde) gün için tüm segmentleri ve aralıkları seçer ve gösterir (yani bir çift açtı ve gösterge tüm segmentleri ve aralıkları çizdi) mevcut gün ve sakinleşti vb. çiftler halinde).
Örneğin, gösterge sekmesi nasıl görünmelidir Giriş parametreleri :
Kendim karalamaya çalıştım ama olmuyor, kolay gibi görünse de (peki ben hümanistim, ne yapabilirim...) Lütfen boğulan bir adama yardım edin !!!!!!! !
Merhaba!
Lütfen yardım edin lütfen. hata izini bul. programı!!!
//+------------------------------------------- --------------------+
//| test.mq4 |
//| Telif Hakkı 2018, MetaQuotes Yazılım A.Ş. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#özellik telif hakkı "365_MA"
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
harici int Period_MA = 365; //MA dönemi 1
dış çift Delta = 0.0010; // Bir siparişin hangi mesafede açılacağı
dize Symb; //Ticaret enstrümanının adı
//int Toplam; //sipariş sayısı
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
//----
ObjectDelete("Obj_Label");
ObjectDelete("Obj_Label2");
//----
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int başlangıç()
{
çifte ödül = teklif; //Mevcut fiyat
double CurrMAValue = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0); // hareketli ortalama değer
çift Fiyat2MA = fiyat - CurrMAValue; // MA'nın fiyata olan uzaklığı
datetime NextClose = Time(0) + Period()*60*2; //kapanma zamanı
int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1; // dakikalar içinde kapanma zamanı
//int hata;
// grafikteki bilgi metninin güncellenmesi
ObjectSetText ("Obj_Label", "TF" + Period() + ", " + DoubleToStr(fiyat, 4) + ", onay işareti " + TimeToStr(TimeCurrent(), TIME_SECONDS) + ", O@" + TimeToStr(Time[0 ], TIME_MINUTES) + ", NC@" + TimeToStr(NextClose, TIME_MINUTES) + " (" + MinutesToNextClose + " dk)", 10,
ObjectSetText ("Obj_Label2", "Delta " + DoubleToStr(Delta,4) + ", MA değeri " + DoubleToStr(CurrMAValue, 4) + ", MA'ya uzaklık " + DoubleToStr(Fiyat2MA, 4), 10, "Arial", koyu yeşil);
// fiyat analizi ve uyarılar
if ((MathAbs(Price2MA) < Delta) && // MA'ya olan uzaklık deltadan küçükse
(Fiyat > CurrMAValue) && // ve fiyat MA'nın üzerinde
(Open(0) > CurrMAValue+Delta)) // ve mevcut mum MA+Delta'dan daha yüksek açıldı
(
Uyarı ("Fiyat MA'ya yukarıdan yaklaştı");
)
if ((MathAbs(Price2MA) < Delta) && // MA'ya olan uzaklık deltadan küçükse
(fiyat < CurrMAValue) && // ve fiyat MA'nın altındadır
(Open(0) < CurrMAValue-Delta)) // ve mevcut mum MA-delta'nın altında açıldı
(
Uyarı ("Fiyat MA'ya aşağıdan yaklaştı");
)
dönüş(0);
//+------------------------------------------- --------------------+
Derlemeden sonra aşağıdaki hata
Merhaba!
Lütfen yardım edin lütfen. hata izini bul. programı!!!
Derlemeden sonra aşağıdaki hata
Unutulmuş kaşlı ayraç
Böyle bir soru, zikzakları türkiyeme entegre etmem gerekiyor (şimdi sap tarafından kabul ediliyor)
Gerçek şu ki, hindim OnCalculate()'i hiç kullanmıyor, her şey OnChartEvent() üzerinde
Zigzag'ı çalıştırabildiğime göre, bunu hesaplamak için oranları_toplam ve ön_hesaplanmışı nereden alabilirim?
oranları_toplam grafikteki çubukların sayısıdır . Çubuklar işlevi kullanılarak belirlenir.
prev_calculated - global olarak (veya statik olarak) bildirerek ve mevcut yinelemede gerçekten hesaplanan çubuk sayısını buna yazarak kendiniz bir analog yapın. Yani, gösterge değerlerinin başarılı bir şekilde hesaplanmasından sonra, içine mevcut çubukların sayısını yazmanız gerekir. Hesaplamalar başarısız olursa, bir sonraki yinelemede geçmişteki her çubuktaki gösterge değerlerini yeniden hesaplamak için sıfırlamak daha iyidir.
Ynt: Alekseu Fedotov
kıvırcık parantez nedir
Ynt: Alekseu Fedotov
kıvırcık parantez nedir
kare dizi dizinde x[25]
geçersiz başlangıç()
{
küme parantezleri içinde Bildirim bloğu
}
Parantez içinde, sin(30) fonksiyonunun argümanı
kare dizi dizinde x[25]
geçersiz başlangıç()
{
küme parantezleri içinde Bildirim bloğu
}