
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Pre-build 600 (3 Şubat 20 14 ) sadece start() vardı. Şimdi OnTick (EA'lar), OnCalculate (göstergeler) ve OnStart (scriptler) var. Bir göstergeden bahsettiğinizi unutmuşum.
Yeni Olay İşleme İşlevleri-İşlevler-Dil Temelleri-MQL4 Başvurusunu kullanmaya başlayın. Geri incelemelerinizi nasıl doğru şekilde yapacağınıza bakın.
Evet! Şu anda sizi çok net anlıyorum ve çok daha fazla teşekkürler .
Ve 20 numaralı yorumunuz bana başka bir fikir verdi. (bir zamanlar bunu benimle paylaşmıştın ve şimdi aklımda tutuyorum)
Ayrıca göstergem için daha iyi kod yazmaya çalışıyorum ve şimdi #18 - @Marco vd Heijden yorumunu öğrenmeye çalışıyorum
O zaman yorumunuzu kapsamlı bir şekilde araştıracağım.
Tekrar teşekkürler!
Lütfen bunu gösterge yerine bir uzmana koyun, bu gelecekte ticaret stratejinizi eklemek istediğinizde daha kolay kullanım sağlar.
Çubuk sorunu için, çubuk açılış saatini bir tarih saat değişkeninde saklayın ve kaydedilen zamanı gerçek zamanla karşılaştırın, ardından yeni bir çubuk ortaya çıktığında tetiklenir.
İşte bir örnek:
Öncelikle çok net yorumunuz için çok teşekkür ederim .
Hâlâ Göstergede kalıyorum. Bir şey denedim ve benim için iyi çalışıyor, ancak bir sorunla karşılaştım, bunu 'Strateji Test Cihazı'nda test edemiyorum - bu bana ölümcül bir hata veriyor: MT4 'Yanıt Vermiyor'.
#1 - Marco, nereden geldiğini bana bildirir misin lütfen?
#2 - Aşağıdaki kod doğru mu?
Denediğim kodun altında.
string _vlineName_M5 ;
int _prd = PERIOD_M5 ;
int _prd_add = PeriodSeconds ( _prd ) ;
datetime _dt_Prd_M5 ;
int _time_M5 ;
datetime _prdCvrt_M5 ;
datetime _timeCvrt_M5 ;
//---init
EventSetMillisecondTimer ( 10 );
_CreateLines();
//---timer
if ( _dt_Prd_M5 != iTime ( Symbol (), _prd, 0 ) )
{
_dt_Prd_M5 = iTime ( Symbol (), _prd, 0 );
_CreateLines();
}
//---_CreateLines()
//---
int _dayCnt_M5 = 0 ;
int _cnt_M5 = iBarShift ( Symbol (), 0 , iTime ( Symbol (), PERIOD_M15 , _dayCnt_M5 ) );
for ( int i = 0 ; i < _cnt_M5; i++ )
{
//---time convert
_time_M5 = Time [i];
_prdCvrt_M5 = PeriodSeconds ( _prd );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
//---name
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr ( _timeCvrt_M5, TIME_DATE | TIME_MINUTES );
//---
if ( _Period < PERIOD_M30 )
{
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE , 0 , _timeCvrt_M5, 0 );
}
}
}
ObjectMove ( 0 , _vlineName_M5, 0 , _dt_Prd_M5, 0 );
Üzerinde çalışmayı bıraktım, yorumunuzdan sonra devam edeceğim. (Aslında yukarıdaki kod için endişeleniyorum, birlikte kullanırken diğer göstergelerimi ezecek.)
Çok teşekkürler.
MT4 Backtester (Migel) İçin Grafik Etkinliği - MQL4 forum
Zamanlayıcı işlevi MT4 strateji test cihazında çalışmaz, bu nedenle onu onay işlevine koymanız gerekir.
MT4 Backtester (Migel) İçin Grafik Etkinliği - MQL4 forum
Çok teşekkürler!
Kesin olarak biliyorum , bu sorun koddan gelmiyor.
Marco vd Heijden :
İşte bir örnek:
//+------------------------------------------------------------------+
int OnInit ()
{
//--- create timer
EventSetMillisecondTimer ( 250 );
//--- create some things
CreateLines(); // Function that creates time lines
//--- load open times
M5= iTime ( Symbol (), PERIOD_M5 , 0 );
//--- set timelines
ObjectMove ( 0 , "Time-M5" , 0 ,M5, 0 );//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer ()
{
if (M5!= iTime ( Symbol (), PERIOD_M5 , 0 ))
{
M5= iTime ( Symbol (), PERIOD_M5 , 0 ); // overwrite old value with new value
//Alert("New Bar on M5! ",TimeToString(M5,TIME_SECONDS));
// do something...
//ObjectMove(0,"Time-M5",0,M5,0);
}
}
//+------------------------------------------------------------------+
Çok teşekkür ederim.
Bu yorum bana çok şey öğretti .
Görünüşe göre bu kod benim için iyi çalışıyor, hangisini önceki yorumumda yayınladım.
Ama bu kodun (hangisi Period_M5 için çalışıyor) Saat 12:00'de (belki 13:00, 14:00...) ve 'OBJ_VLINE'ın geçmiş zamanlarını yok sayan kodun altında çalışmamasına ihtiyacım var (bu iyi benim için) ama şu anda Saat 12:00 iken aşağıdaki kod bana ayrıca şu anki VLINE saatini gösteriyor ama ben istemiyorum.
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE , 0 , _timeCvrt_M5, 0 );
} //---if Close
Sorunumu çözen bir şey denedim ama düzgün çalışmadı .
Ayrıca ekran görüntüsü ekledim.
Lütfen bana yardım edin, bu sorunu gerçekten çözmem gerekiyor.
Şimdiden çok teşekkürler.
Nereden biliyorsunuz?
Çünkü bağlantı kesildi ve bağlantı kesilirken ' Strateji Test Cihazı ' kullanmaya çalıştım ve bu benim için mükemmel çalışıyor .
Sizin ve Bay William'ın yorumlarını okuduktan sonra bundan emin olacağım .
Bu yeterli değil mi, üzgünüm?
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE , 0 , _timeCvrt_M5, 0 );
} //---if Close
Bu örnekte her saat başı bir satır alırsınız AMA 12:00 çünkü !=farklı 12 ifadeyle hariç tutarsınız, yani == 12'ye eşit olduğunda satır yok.
Bu örnekte her saat başı bir satır alırsınız AMA 12:00 çünkü !=farklı 12 ifadeyle hariç tutarsınız, yani == 12'ye eşit olduğunda satır yok.
Harika adam , teşekkürler :))
Bu basit ama buna aldırmıyorum. Sadece basit ve sadece vay .
(Aslında bu göstergemde '==' kullanıyorum ama gerçekten 'OnTimer'a odaklandım)
//--- ikinci kez düzenlendi...
Bu benim için iyi çalışıyor, ancak saat 00:00 olduğunda - ek geçerli saat VLINE'ı tekrar gösterir.
TimeHour ( _timeCvrt_M5 ) == 1 ||
TimeHour ( _timeCvrt_M5 ) == 2 ||
TimeHour ( _timeCvrt_M5 ) == 3 ||
TimeHour ( _timeCvrt_M5 ) == 5 ||
TimeHour ( _timeCvrt_M5 ) == 6 ||
TimeHour ( _timeCvrt_M5 ) == 7 ||
TimeHour ( _timeCvrt_M5 ) == 9 ||
TimeHour ( _timeCvrt_M5 ) == 10 ||
TimeHour ( _timeCvrt_M5 ) == 11 ||
TimeHour ( _timeCvrt_M5 ) == 13 ||
TimeHour ( _timeCvrt_M5 ) == 14 ||
TimeHour ( _timeCvrt_M5 ) == 15 ||
TimeHour ( _timeCvrt_M5 ) == 17 ||
TimeHour ( _timeCvrt_M5 ) == 18 ||
TimeHour ( _timeCvrt_M5 ) == 19 ||
TimeHour ( _timeCvrt_M5 ) == 21 ||
TimeHour ( _timeCvrt_M5 ) == 22 ||
TimeHour ( _timeCvrt_M5 ) == 23
)
(Araştırıldığım için bu yorumu birkaç kez güncelledim)
Lütfen bana yardım et.