Onunla daha fazla çalışmak için bir sipariş seçer. İşlev başarıyla tamamlandıysa true döndürür. İşlev başarısız olursa false döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.
boolOrderSelect( uzunbilet// bilet sipariş et );
Seçenekler
bilet
[içinde] Bilet sipariş edin.
Bu bilet nasıl atanır? Nereden alınır? Veya nasıl kurulur?
Kılavuzda diyor ki
SiparişGetBilet
İlgili siparişin biletini döndürür ve işlevleri kullanarak onunla daha fazla çalışmak için siparişi otomatik olarak seçer. Tüm siparişleri endekse göre sıralamak ve gerekirse bir bilet almak gerekir. Bu işlevin kendisi bir sipariş seçmesine rağmen. Bilet komisyoncu tarafından belirlenir, değiştirilemez.
ulongOrderGetTicket (
int index // номер в списке ордеров
);
Her gün grafikte "işlem dışı bir zaman dilimi" çizmesi gereken bir fonksiyon yazdım. Ancak sorun şu ki - başlangıçta, OnInit modülü beklendiği gibi çiziyor ve OnTimer modülünde bilinmeyen bir nedenden dolayı tetiklendiğinde, tarih değişkeni OnInit modülüne atanan değerleri kaydeder.
Soru: Neden?
intOnInit ()
{
EventSetTimer ( 1 );
MqlDateTime date;
TimeLocal (date);
offtimeCreate(date); // Рисуем на графике заполненный прямоугольник (не торговая зона) с 21:00 до 23:59 в день указанный в переменной datereturn ( INIT_SUCCEEDED );
}
...
void onTimer()
{
MqlDateTime date;
TimeLocal (date);
if (date.hour== 9 && date.min== 0 && date.sec== 0 ) offtimeCreate(date); // Каждое утро, в 9:00, рисуем новую "не торговую зону" для дня указанного в переменной date
}
...
Her gün grafikte "işlem dışı bir zaman dilimi" çizmesi gereken bir fonksiyon yazdım. Ancak sorun şu ki - başlangıçta, OnInit modülü beklendiği gibi çiziyor ve OnTimer modülünde bilinmeyen bir nedenden dolayı tetiklendiğinde, tarih değişkeni OnInit modülüne atanan değerleri kaydeder.
Çünkü A) Görsel olarak görüyorum, "zaman dilimi" bugün 21:00'den 23:59'a değil, dün 21:00'den bugün 23:59'a çiziliyor.
B) Grafik nesnesinin özelliklerini açarsanız (dolu dikdörtgen - "zaman dilimi"), ilk değişkenin değişmediğini görebilirsiniz, yani. dün 21:00 gibi önemli
INGFX : Evet, OnTimer, burada yeniden yazdığımda bir hata yaptım ... kodun kendisinde her şey doğru
Kodunuzu kontrol edeceksiniz. Parçalarınızı bir araya getirmekten bıktınız - işte doğrulama kodu. OnTimer'da yerel saatinizi değiştirin ve başlatma sırasındaki ve zamanlayıcıdaki baskıları karşılaştırın:
//+------------------------------------------------------------------+//| TestEA.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit ()
{
EventSetTimer ( 1 );
MqlDateTime date;
TimeLocal (date);
offtimeCreate(date); // Рисуем на графике заполненный прямоугольник (не торговая зона) с 21:00 до 23:59 в день указанный в переменной datereturn ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnTimer ()
{
MqlDateTime date;
TimeLocal (date);
if (date.hour== 22 && date.min== 33 && date.sec== 00 )
offtimeCreate(date); // Каждое утро, в 9:00, рисуем новую "не торговую зону" для дня указанного в переменной date
}
//+------------------------------------------------------------------+/*void offtimeCreate(MqlDateTime &struct_date)
{
string text="";
text=IntegerToString(struct_date.hour)+":"+
IntegerToString(struct_date.min)+":"+
IntegerToString(struct_date.sec);
Comment(text);
//ChartRedraw();
}*///+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool offtimeCreate( MqlDateTime &stm)
{
color clr=Black;
datetime tm1,tm2;
tm1 = StringToTime (( string )stm.year+ "." +( string )stm.mon+ "." +( string )stm.day+ " 21:00" );
tm2 = StringToTime (( string )stm.year+ "." +( string )stm.mon+ "." +( string )stm.day+ " 23:59" );
Print (tm1+ " " +tm2);
//RectangleCreate(0,"offtime",0,tm1,0,tm2,200,clr); // chrart_id,object_name,sub_window,time1,price1,time2,price2,colorreturn ( true );
}
//+------------------------------------------------------------------+
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Söylesene, hafta sonu açılış pozisyonları için senaryoların performansını nasıl kontrol edebilirim?
OnCalculate() içindeki tüm keneleri yalnızca gösterge işler. Geçişler olmadan.
hayır. Ve özlüyor. Ama diğerlerinden daha az. Ama özlüyor
Bu iyi, teşekkürler.
Bir soru daha:
SiparişSeç
Onunla daha fazla çalışmak için bir sipariş seçer. İşlev başarıyla tamamlandıysa true döndürür. İşlev başarısız olursa false döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.
bool OrderSelect (
uzun bilet // bilet sipariş et
);
Seçenekler
bilet
[içinde] Bilet sipariş edin.
Bu bilet nasıl atanır? Nereden alınır? Veya nasıl kurulur?
SiparişGetBilet
İlgili siparişin biletini döndürür ve işlevleri kullanarak onunla daha fazla çalışmak için siparişi otomatik olarak seçer. Tüm siparişleri endekse göre sıralamak ve gerekirse bir bilet almak gerekir. Bu işlevin kendisi bir sipariş seçmesine rağmen. Bilet komisyoncu tarafından belirlenir, değiştirilemez.
Merhaba!
Her gün grafikte "işlem dışı bir zaman dilimi" çizmesi gereken bir fonksiyon yazdım.
Ancak sorun şu ki - başlangıçta, OnInit modülü beklendiği gibi çiziyor ve OnTimer modülünde bilinmeyen bir nedenden dolayı tetiklendiğinde, tarih değişkeni OnInit modülüne atanan değerleri kaydeder.
Soru: Neden?
Merhaba!
Her gün grafikte "işlem dışı bir zaman dilimi" çizmesi gereken bir fonksiyon yazdım.
Ancak sorun şu ki - başlangıçta, OnInit modülü beklendiği gibi çiziyor ve OnTimer modülünde bilinmeyen bir nedenden dolayı tetiklendiğinde, tarih değişkeni OnInit modülüne atanan değerleri kaydeder.
Soru: Neden?
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Karputov Vladimir , 2016.01.09 20:51
Size zamanlayıcıda tarih değişkeninin OnInit()'te önceden tanımlanan değerden geçtiğini düşündüren nedir?
Bölgeyi çizen işlevinize bakmanız gerekir.
Katma:
Doğru OnTimer olurdu, onTimer değil
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
INGFX , 2016.01.09 21:20
Çünkü A) Görsel olarak görüyorum, "zaman dilimi" bugün 21:00'den 23:59'a değil, dün 21:00'den bugün 23:59'a çiziliyor.
B) Grafik nesnesinin özelliklerini açarsanız (dolu dikdörtgen - "zaman dilimi"), ilk değişkenin değişmediğini görebilirsiniz, yani. dün 21:00 gibi önemli
Evet, OnTimer, burada yeniden yazdığımda bir hata yaptım ... kodun kendisinde her şey doğru
Kodunuzu kontrol edeceksiniz. Parçalarınızı bir araya getirmekten bıktınız - işte doğrulama kodu. OnTimer'da yerel saatinizi değiştirin ve başlatma sırasındaki ve zamanlayıcıdaki baskıları karşılaştırın:
Kodunuzu kontrol edeceksiniz.
Vladimir, sabrın ve yardımın için teşekkürler!
Gerçekten kodda bir hata yaptı ...
Gelecekte daha dikkatli olacağım.