[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 69

 

Oturuyorum ve algoritmayı nasıl uygulayacağımı gerçekten çözemiyorum.

biri yardım edebilir mi.

1. günün başlangıcını bul (bunu ben yaptım)

2. Günün zirvesini bulun (bitti)

3. Bu maksimumdan sonra MA'yı yukarıdan aşağıya geçtikten sonra ilk fraktalı takip edecek çubukları hesaplamanız gerekir.


bir çizim ekliyorum.


 
komposter >> :

iRSI yerine iCCI olmalıdır.

EPRST ...... gözlerim tamamen düştü ..... teşekkürler, bom edit

 
luka >> :

Oturuyorum ve algoritmayı nasıl uygulayacağımı gerçekten çözemiyorum.

biri yardım edebilir mi.

3. Bu maksimumdan sonra MA'yı yukarıdan aşağıya geçtikten sonra ilk fraktalı takip edecek çubukları hesaplamanız gerekir.

"takip edecek çubukları hesapla..."

Daha basit yazın: "Bilgisayarı açtıktan sonra fiyatın nereye gideceğini bilmek istiyorum..." :-)))))

 
mukata >> :

"takip edecek çubukları hesapla..."

Daha basit yazın: "Bilgisayarı açtıktan sonra fiyatın nereye gideceğini bilmek istiyorum..." :-)))))


anlamadın.

bu çubuklar zaten grafikte. ya da diyelim ki bu mevcut çubuk. Ve koşulları karşılıyorsa - istenen çubuktur.

Bu ilk.

Ve ikincisi, ne hakkında olduğunu anlamadıysan neden bir kez daha sel basıyorsun?

 
Skydiver >> :

şöyle deneyebilirsin

OrderSelect(1, SELECT_BY_POS)

if(OrderOpenTime()!=0) 

{

///необходимая операция

}

Ancak bu, yalnızca 1 siparişiniz varsa bir seçenektir!

yani siparişin beklemede olup olmadığını kontrol edelim mi?


Fikir şudur: örneğin, siparişin durdurulmasıyla birlikte, satın alma işlemine bekleyen üç sipariş verilir.

Bu 3 bekleyen emirden birinin normal bir "çalışma emri" haline gelmesi için bir koşul istiyorum.

 
luka >> :

anlamadın.

bu çubuklar zaten grafikte. ya da diyelim ki bu mevcut çubuk. Ve koşulları karşılıyorsa - istenen çubuktur.

Bu ilk.

Ve ikincisi, ne hakkında olduğunu anlamadıysan neden bir kez daha sel basıyorsun?

" re'den sonraki ilk fraktalı takip edecek çubukları hesapla...". takip edecekler , bu da takip edecekleri anlamına geliyor ve "zaten listede" değil ...

Şimdi, eğer "Şartları karşılıyorsa - istenen çubuktur" - bu başka bir konudur. "Koşulları" tanımlayın, biri yardımcı olacaktır.

Sel için özür dilerim, kırıldı.



 
mukata >> :

" re'den sonraki ilk fraktalı takip edecek çubukları hesapla...". takip edecekler , bu da "zaten listede" değil, izleyecekleri anlamına geliyor ...

Şimdi, eğer "Şartları karşılıyorsa - istenen çubuktur" - bu başka bir konudur. "Koşulları" tanımlayın, biri yardımcı olacaktır.

Sel için özür dilerim, kırıldı.



Vay be aynen böyle yazdım

Neyi bilmediğimi, nerede ve nasıl olduğunu bilmeden bulmayı amaçlamayacağım.

Halihazırda var olan belirli çubuklarla ilgileniyorum. Daha doğrusu onların vardiyası.

Bu arada, zaten uyguladım, o kadar da zor değilmiş gibi görünüyor :)

 
fima_ >> :

yani siparişin beklemede olup olmadığını kontrol edelim mi?


Fikir şudur: örneğin, siparişin durdurulmasıyla birlikte, satın alma işlemine bekleyen üç sipariş verilir.

Bu 3 bekleyen emirden birinin normal bir "çalışma emri" haline gelmesi için bir koşul istiyorum.

3 gecikmeniz var ve en az 1 çalıştıysa, bir koşul belirlendi mi?

eğer öyleyse, yapabilirsin

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0) ///время не равно 0 значит отложка сработала(или как писал Roger  if(OrderType()<2)  )
{
///необходимая операция
}
}

yoksa 1 açık + 3 bekleyen siparişiniz mi var?

o zaman şöyle deneyebilirsin

//в глобальных переменных 

int tick[3];  

//в функции start

//cначало записываем номера тикетов отложек в переменные 

for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера

{

  OrderSelect(cnt, SELECT_BY_POS)
  if(OrderOpenTime()!=0)

  {

     tick[cnt]=OrderTicket();

  }

}

//а далее проверяем выполнился ли отложенный ордер


for(int cnt=0;cnt<OrdersTotal();cnt++)

{

   OrderSelect(cnt, SELECT_BY_POS)
   if(OrderOpenTime()!=0)

{

   for(int cnt2=0;cnt2<3;cnt++)

   if(tick[cnt]==OrderTicket())

   {

     //необходимое условие

   }

}

veya tüm gecikmeler için belirli bir Sihir kullanın ve bu Sihir ile açık bir emir belirirse, aşağıdaki koşulu kullanmanız gerekir, örneğin:

в глоб перем

int mag=12345;

в ф start

/// При открытии отложки укажите ему в качестве магика mag

///ну а далее идет поиск "бывшей" отложки по Magic

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

   OrderSelect(cnt, SELECT_BY_POS)
   if(OrderOpenTime()!=0&&OrderMagic()==Mag)

{

///необходимая операция

}

}

Olası hatalar için kodu kontrol etmedim!

 
OrderSelect (0,SELECT_BY_POS) işlevi hangi sırayı döndürür? Hangisi önce açıldı? Siparişler takas edilemez mi? (Bekleyen emirleri kullanmıyorum)
 
AndreyK AndreyK писал(а)
OrderSelect (0,SELECT_BY_POS) işlevi hangi sırayı döndürür? Hangisi önce açıldı? Siparişler takas edilemez mi? (Bekleyen emirleri kullanmıyorum)

Bu doğru, hangisi ilk. Prensipte yalnızca bir sipariş açabileceğinizi ve bozulmayı önleyebileceğinizi kesin olarak biliyorsanız, bu uygundur. Emirler değiş tokuş edilmez, ancak önceki kapandığında en küçüğüne kaydırılır.

Neden: