Вадим Мотеюнас : if(iOpen[0] != time_open )'iOpen' - bildirilmemiş kimliği gösteren bir hata yazıyor
Biraz yanlış bir şey yazdım, biraz da düşüncenin aksi yönünde. iOpen[0] öğesini Open[0] olarak değiştirin. düzeltildi . Basitçe söylemek gerekirse. Açılırken bar açılış saati hatırlanır ve bu barda sipariş alınmaz.
Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer - NULL , mevcut piyasa aracı anlamına gelir.
tf - Zaman çerçevesi. Varsayılan değer - 0 , geçerli zaman çerçevesi anlamına gelir.
op - Ticaret işlemi , pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
harici ayarlar? İlk özel etkinlikten önce onları duyurmak gerekiyor. yani NumberOfBarOpenLastPos() işlevinin açıklamasında yer almaları yeterli değil mi?
Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer - NULL , mevcut piyasa aracı anlamına gelir.
tf - Zaman çerçevesi. Varsayılan değer - 0 , geçerli zaman çerçevesi anlamına gelir.
op - Ticaret işlemi , pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
harici ayarlar? İlk özel etkinlikten önce onları duyurmak gerekiyor. yani NumberOfBarOpenLastPos() işlevinin açıklamasında yer almaları yeterli değil mi?
Yeterlik. Gerekli değerleri harici parametrelere girebilirsiniz: Sihir, hangi pozisyonları arıyoruz, belki sadece AL ile, gerekirse AL(0) ve SAT (1) ile - sonra "-1" yazın.
Biraz yanlış bir şey yazdım, biraz da düşüncenin aksi yönünde. iOpen[0] öğesini Open[0] olarak değiştirin. düzeltildi . Basitçe söylemek gerekirse. Açılırken bar açılış saati hatırlanır ve bu barda sipariş alınmaz.
Bir sipariş açmadan önce if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu gibi bir grup sipariş açılır, çünkü NumberOfBarOpenLastPos -1 döndürür
Bir sipariş açmadan önce if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu gibi bir grup sipariş açılır, çünkü NumberOfBarOpenLastPos -1 döndürür
Siparişleri arıyorsunuz, o zaman işlevi tam sürümünde, yani yalnızca pozisyonlara göre değil, siparişlere göre arama yapma özelliğiyle kullanmanız gerekir:
int NumberOfBarOpenLastPos( string sym= "" , int tf= 0 , int op=- 1 , int mn=- 1 )
{
datetime oot= 0 ; // Инициализируем нулёмint i,k= OrdersTotal ();
if (sym== "" ) sym= Symbol ();
for (i= 0 ; i<k; i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
{
if ( OrderSymbol ()==sym)
{
if ( OrderType ()< 6 ) // Ищем и по ордерам
{
if (op< 0 || OrderType ()==op)
{
if (mn< 0 || OrderMagicNumber ()==mn)
{
if (oot< OrderOpenTime ()) oot= OrderOpenTime (); // Ищем последнее
}
}
}
}
}
}
return ( iBarShift (sym, tf, oot, true ));
}
Yeterlik. Gerekli değerleri harici parametrelere girebilirsiniz: Sihir, hangi pozisyonları arıyoruz, belki sadece AL ile, gerekirse AL(0) ve SAT (1) ile - sonra "-1" yazın.
test cihazında başlatıldığında, doğal olarak, açık sipariş yoktur, bu nedenle belki -1 döndürülür ve bu nedenle if(NumberOfBarOpenLastPos( Symbol() ,0,-1,-1)>0) koşulu karşılanmaz mı?
test cihazında başlatırken, doğal olarak, açık sipariş yoktur, bu nedenle belki -1 döndürülür ve bu nedenle if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu karşılanmaz mı?
Siparişleri arıyorsunuz, o zaman işlevi tam sürümünde, yani yalnızca pozisyonlara göre değil, siparişlere göre arama yapma özelliğiyle kullanmanız gerekir:
Burada fonksiyonda, zamanın en yenisinin, yani sonuncusunun aranması ve seçilmesi var.
Ardından, seçili olanı elde ederiz ve onu iBarShift işleviyle değiştiririz (sym, tf, oot , true );
İşlev, çubuk numarasını zamana göre döndürür. Her şey.
Maalesef kontrol edemiyorum, ancak kullandığımda, burada I. Kim'den yayınlanan tüm işlevler gibi mükemmel çalıştı.
if ( iOpen [ 0 ] != time_open ) 'iOpen' - bildirilmemiş kimliği gösteren bir hata yazıyor
Biraz yanlış bir şey yazdım, biraz da düşüncenin aksi yönünde. iOpen[0] öğesini Open[0] olarak değiştirin. düzeltildi . Basitçe söylemek gerekirse. Açılırken bar açılış saati hatırlanır ve bu barda sipariş alınmaz.
Ayrıca işlevin açıklamasında diyor ki
Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
Ayrıca işlevin açıklamasında diyor ki
Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:
Yeterlik. Gerekli değerleri harici parametrelere girebilirsiniz: Sihir, hangi pozisyonları arıyoruz, belki sadece AL ile, gerekirse AL(0) ve SAT (1) ile - sonra "-1" yazın.
Biraz yanlış bir şey yazdım, biraz da düşüncenin aksi yönünde. iOpen[0] öğesini Open[0] olarak değiştirin. düzeltildi . Basitçe söylemek gerekirse. Açılırken bar açılış saati hatırlanır ve bu barda sipariş alınmaz.
Bir sipariş açmadan önce if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu gibi bir grup sipariş açılır, çünkü NumberOfBarOpenLastPos -1 döndürür
Bir sipariş açmadan önce if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu gibi bir grup sipariş açılır, çünkü NumberOfBarOpenLastPos -1 döndürür
Siparişleri arıyorsunuz, o zaman işlevi tam sürümünde, yani yalnızca pozisyonlara göre değil, siparişlere göre arama yapma özelliğiyle kullanmanız gerekir:
Yeterlik. Gerekli değerleri harici parametrelere girebilirsiniz: Sihir, hangi pozisyonları arıyoruz, belki sadece AL ile, gerekirse AL(0) ve SAT (1) ile - sonra "-1" yazın.
test cihazında başlatıldığında, doğal olarak, açık sipariş yoktur, bu nedenle belki -1 döndürülür ve bu nedenle if(NumberOfBarOpenLastPos( Symbol() ,0,-1,-1)>0) koşulu karşılanmaz mı?
test cihazında başlatırken, doğal olarak, açık sipariş yoktur, bu nedenle belki -1 döndürülür ve bu nedenle if(NumberOfBarOpenLastPos(Symbol(),0,-1,-1)>0) koşulu karşılanmaz mı?
Şimdi kontrol edeceğim.
Siparişleri arıyorsunuz, o zaman işlevi tam sürümünde, yani yalnızca pozisyonlara göre değil, siparişlere göre arama yapma özelliğiyle kullanmanız gerekir:
neyse -1 döner
neyse -1 döner
Harika çalışıyor!
İkincisini, ekran görüntüsünde görülebileceği gibi, 11. çubukta olmak üzere iki konumdan seçtim:
Doğrulama kodu: