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
tezgah?
Aylardır o kadar çok gösterge programlıyorum ki uzmanlar konusunda biraz yetersizim ama bunu çözmeye niyetliyim. Bu arada biraz yardıma ihtiyacım var. Bir araya getirdiğim uzmanımda, ticareti kapatmayı garanti edecek bir durum olup olmadığını barın kapanışında kontrol ettirdim.
Global bir değişkenle başlıyorum,
datetime PreviousBar; // record candle/bar time[/CODE]
and set one bool in init()
{
do_this = true;
}
[/CODE]
blah blah boring stuff.... etc, etc
then in the main loop I have:
[CODE]
if(do_this == true)
{
PreviousBar = Time[0];
do_this= false; // so it does this only once only
}
if(NewBar() == true)
{
if(TotalOpenOrders() == blah blah close my order you crazy monkey)
}
and outside the main loop I have:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}Tamam, her çubuk için bir kez yapılacak şekilde ayarlanmıştır. Yapmak istediğim şey, 90 saniyeyi veya 60 saniyeyi ya da her neyse artan bir fonksiyona sahip olmak, sonra o süreyi artırdıktan sonra bir bool değerini true olarak ayarlamak. Temel olarak göstergeleri her 60, 90, 120 saniyede bir veya barın kapanması yerine her neyse kontrol etmek istiyorum. Bunu nasıl yaparım?
Herhangi bir yardım için teşekkürler,
- nittany1
Aylardır o kadar çok gösterge programlıyorum ki uzmanlar konusunda biraz yetersizim ama bunu çözmeye niyetliyim. Bu arada biraz yardıma ihtiyacım var. Bir araya getirdiğim uzmanımda, ticareti kapatmayı garanti edecek bir durum olup olmadığını barın kapanışında kontrol ettirdim.
Global bir değişkenle başlıyorum,
datetime PreviousBar; // record candle/bar time[/CODE]
and set one bool in init()
{
do_this = true;
}
[/CODE]
blah blah boring stuff.... etc, etc
then in the main loop I have:
[CODE]
if(do_this == true)
{
PreviousBar = Time[0];
do_this= false; // so it does this only once only
}
if(NewBar() == true)
{
if(TotalOpenOrders() == blah blah close my order you crazy monkey)
}
and outside the main loop I have:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}Tamam, bar başına bir kez yapılacak şekilde ayarlanmıştır. Yapmak istediğim şey, 90 saniyeyi veya 60 saniyeyi ya da her neyse artan bir fonksiyona sahip olmak, sonra o süreyi artırdıktan sonra bir bool değerini true olarak ayarlamak. Temel olarak göstergeleri her 60, 90, 120 saniyede bir veya barın kapanması yerine her neyse kontrol etmek istiyorum. Bunu nasıl yaparım?
Herhangi bir yardım için teşekkürler,
- nittany1Bu yapmalı. MT'nin kene tabanlı yürütme kullandığını unutmayın, bu nedenle saniye başına doğruluk mümkün değildir (Init() alt öğesindeki her şeyi döngüye almadığınız sürece).
if (CallIndicatorsCheck())
{
// kodunuz burada
}
bool CallIndicatorsCheck()
{
statik tarihsaat Oldtime;
int Sn = 90;
bool Bayrak;
if (CurrTime() >= Eski Zaman) {
Oldtime = CurrTime() + Saniye;
İşaret = doğru; }
dönüş(Bayrak);
}
Yorum yerleştirme
Birisi bana varsayılan sol üst yerine ekranın SAĞ ÜST köşesine yorum yerleştirme kodunu gösterebilir mi?
Teşekkürler!
Birisi bana varsayılan sol üst yerine ekranın SAĞ ÜST köşesine yorum yerleştirme kodunu gösterebilir mi? Teşekkürler!
Yapamazsın. MQL4 kılavuzundan:
Ölüme ihtiyacınız varsa, nesneler yaratabilirsiniz .
Birisi bana varsayılan sol üst yerine ekranın SAĞ ÜST köşesine yorum yerleştirme kodunu gösterebilir mi? Teşekkürler!
LinusGuy haklı; doğrudan bir yolu yok. Kolay geçici çözüm, Yorumunuzu boşluklarla doldurmaktır --
Yorum(" merhaba dünya!");
metni sağa kaydırır.
Sayfayı aşağı indirmek için satır beslemeleri de koyabilirsiniz.
Comment("\n\n\n\n\nmetniniz");
veya ekranın sağ alt köşesinde yazdırmak için satır beslemeleri ve boşlukları birleştirin.
mog
LinusGuy haklı; doğrudan bir yolu yok. Kolay geçici çözüm, Yorumunuzu boşluklarla doldurmaktır --
Yorum(" merhaba dünya!");
metni sağa kaydırır.
Sayfayı aşağı indirmek için satır beslemeleri de koyabilirsiniz.
Comment("\n\n\n\n\nmetniniz");
veya ekranın sağ alt köşesinde yazdırmak için satır beslemeleri ve boşlukları birleştirin.
mogYardım için teşekkürler. Deneyeceğim!
kaybedilen bir ticaretten sonra X çubukları için yeni ticaret yok
merhaba takım - birinin yardım edebileceğini umuyorum lütfen ..
Son ticaret bir kayıpsa, yeni bir ticaretin 10 bar için başlamasını nasıl durdurabilirim?
şerefe
Aşağıdaki işlev , hesap geçmişinde 10. önceki çubuğun açılışında veya sonrasında kapanan bir kayıp ticareti olduğunda (geçerli çubuk 0'dır) doğru dönecektir,
ve aksi takdirde false döndürün.
{
datetime since = Time[ bar+10 ];
for ( int i = OrdersHistoryTotal() - 1; i >= 0; i-- ) {
if ( ! OrderSelect( i, SELECT_BY_POS, MODE_HISTORY )
continue;
if ( OrderProfit() = since )
return( true );
}
return( false );
}
[/PHP]
If you add that function to your EA, then include a statement like the following in the start() function, then Bob's your uncle.
[PHP]if ( postMortem() ) return( 0 );bunun için çok teşekkür ederim - deneyeceğim
Saygılarımızla
arkadaşlar sizde de aynı sorun var mı?
Bir uzmanı kodladım. Fiyat, göstergeyle aynı olduğunda bir pozisyon açmak istiyorum. Bunu yapmak için aşağıdaki cümleyi kullanıyorum:
//satın almak
çift göstergegeçmiş = icustom(.....................,1);
çift göstergenow = icustom(.....................,0);
if (kapat[1]gösterge şimdi) OpenBUY();
if (kapat[1]>indicatorpast && kapat[0]<indicatornow) OpenSELL();
ancak bu satatment ile, uzman sadece fiyat göstergeyi geçtiğinde pozisyon açmakla kalmaz, aynı zamanda göstergenin üzerinde de pozisyon açar. SADECE göstergeyi geçtiğinde uzman açık pozisyonunun olmasını istiyorum, bu yüzden şunu denedim:
//satın almak
çift göstergegeçmiş = icustom(.....................,1);
çift göstergenow = icustom(.....................,0);
if (kapat[1]<indicatorpast && kapat[0] == göstergeşimdi) OpenBUY();
if (close[1]>indicatorpast && close[0] == göstergeşimdi) OpenSELL();
Ama bu açıklamayı gerçekleştirmiyor.
Ne olduğunu biliyor musun? Çünkü bence açıklamada hata yok.
Saygılarımızla.