Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 843

 
artmedia70 :
Biletle bir pozisyonu kapatmak için öncelikle kapatılan pozisyonun bilet numarasını tam olarak bilmeniz gerekir. Ardından OrderSelect(ticket,SELECT_BY_TICKET) işlevini kullanarak bir sipariş seçmeniz ve seçimin başarılı olup olmadığını kontrol etmeniz gerekir. Ardından, başarıyla seçilen bir siparişin kapanış saatini kontrol etmeniz gerekir. Ne için? Ardından, bilete göre seçim yaparken, OrderSelect(..., ..., pool ) işlevinin havuz parametresi yok sayılır (yalnızca dizine göre seçerken gereklidir). Bu, bir siparişi başarıyla seçmiş olsak bile, onu hangi listede seçtiğimizi bilmemiz gerektiği anlamına gelir - kapalı veya açık pozisyonlar listesinde. "Piyasada hala sipariş var mı?" diye sormamızı sağlayacak olan kapanış saatinin kontrolüdür. Kapanış zamanı sıfır ise, emir hala piyasadadır. Zaman sıfırdan farklıysa, sipariş daha önce kapatılmıştır. Ve şimdi, tüm bu işlemlerden sonra, bu siparişi kapatmak için bir emir gönderebiliriz.

Önümde bir tablo var. Üzerinde bir siparişin açık olduğunu görüyorum. kapatmaya karar veriyorum. Tümü. DAHA FAZLASI hiçbir şeye gerek yok.

(Soruyorum çünkü... "tek tıkla ticaret"i çarpı işaretiyle de kapatabilirim, ancak kısayol tuşlarıyla benim için çok uygun)

 
evillive :

int SiparişlerToplam(); - sayıyı döndürür, doğru-yanlış değil, sorun bu. Hiçbir sipariş 0 anlamına gelir ve sipariş varsa, o zaman sadece 1 değildir.

Ve henüz işlem görmemiş, sadece yeni açılmış bir hesapta kapatılan yok. Ve yine işlevin yanlış kullanımı.

Neden RefreshRates(); Siparişi sunucuya gönderdikten SONRA? Bir şeye önce para ödeyip sonra "ne kadar" diye sormak gibi...

Teşekkürler, her şeyi anlıyorum.
 
evillive :

int SiparişlerToplam(); - sayıyı döndürür, doğru-yanlış değil, sorun bu. Hiçbir sipariş 0 anlamına gelir ve sipariş varsa, o zaman sadece 1 değildir.

Ve henüz işlem görmemiş, sadece yeni açılmış bir hesapta kapatılan yok. Ve yine işlevin yanlış kullanımı.

Neden RefreshRates(); Siparişi sunucuya gönderdikten SONRA? Bir şeye önce para ödeyip sonra "ne kadar" diye sormak gibi...

"Rusya'nın başkenti adına iki hata yapar" ifadesini duyunca bir sersemliğe kapıldım. Nerede bulunabilirler??? Sonra anladım, evet, iki tane yapabilirsin.

Dolayısıyla bu, tartışılan kod satırında birden fazla hata olduğu gerçeğidir.

 if (! OrdersTotal ()== true )

if(olumsuz -> ifade == doğru) Tabii ki Artyom'un açıkladığı gibi anlayabilirsiniz, eğer 0 ise false o zaman diğer her şey doğrudur O zaman açık emirler olduğunu inkar edersek, o zaman... ayyy.. Moskova'yı iki yanlışla yazmak daha kolay.

 
Escapee :

Önümde bir tablo var. Üzerinde bir siparişin açık olduğunu görüyorum. kapatmaya karar veriyorum. Tümü. DAHA FAZLASI hiçbir şeye gerek yok.

(Soruyorum çünkü... "tek tıkla ticaret"i çarpı işaretiyle de kapatabilirim, ancak kısayol tuşlarıyla benim için çok uygun)

Burada size programlı olarak nasıl doğru bir şekilde yapacağınızı anlatıyorum.

1. İşte tek sıralı bir grafik. Bilet numarasını görebilirsin ama program? Programın bu numarayı bilmesi gerekiyor.

2. Kapatmak istiyorsunuz. Böylece, böyle ve böyle bir biletle bir siparişin açık olduğunu görüyorsunuz. Program ne olacak? Program bunu bilmiyor. Bu nedenle, programın böyle ve böyle bir biletle bir siparişin açık olup olmadığını öğrenmesi gerekir.

3. Haç ve noktayı tıklayabilirsiniz... Ve programa bir komut verilmesi gerekiyor.

Sonuç olarak:

1. Açık pozisyon olup olmadığını öğrenin

2. Varsa, ihtiyacımız olan siparişin biletini arıyoruz

3. Bulunan bilete göre bir sipariş seçin. Başarıyla seçilirse, o zaman...

4. Bilet tarafından seçilen bu siparişin kapanış saatini kontrol edin. Kapanış saati sıfırsa, o zaman...

5. Kapatıyoruz.

 

Cevabını şu şekilde düzeltirim.

artmedia70 :


1. İşte tek sıralı bir grafik. Bilet numarasını görebilirsin

2. Kapatmak istiyorsunuz.

3. Çapraz ve noktayı tıklayabilirsiniz...

5. Kapatın .

 
AlexeyVik :

Cevabını şu şekilde düzeltirim.

Şaka mı yapıyorsun?
 
artmedia70 :
Şaka mı yapıyorsun?

Evet. Bugün izin günü.


 
artmedia70 :


onlar. Bir sipariş açma komut dosyasına benzeterek bir sipariş kapatma komut dosyası yapmak mümkün müdür? Ve orada çok basit .. siparişler son ... düşündüm ..
 
Escapee :
onlar. Bir sipariş açma komut dosyasına benzeterek bir sipariş kapatma komut dosyası yapmak mümkün müdür? Ve orada çok basit .. sipariş gönder ... diye düşündüm ..

Bir emir açmak da o kadar kolay değil - bir ticaret talebi göndermek için tek bir komutla değil. Tüm bu komutlar , ticaret sunucusunun dönüş kodlarını kontrol ederek ve bu yanıtlara yanıt vererek tam teşekküllü bir işleve "sarılmalıdır". Kabul edilebilir seviyelerin kontrol edilmesi, siparişte yanlış bir hesaplanmış seviye belirtilmişse yeniden hesaplanması vb.

Kapatma aynıdır: sunucuya bir sipariş gönderen sadece bir kod satırı değil, tam teşekküllü bir kapatma işlevi çağıran gerekli siparişi aramak için ayrı bir işlev.

 
artmedia70 :

Bir emir açmak da o kadar kolay değil - bir ticaret talebi göndermek için tek bir komutla değil. Tüm bu komutların, ticaret sunucusunun dönüş kodlarını kontrol ederek ve bu yanıtlara yanıt vererek tam teşekküllü bir işleve "sarılması" gerekir. Kabul edilebilir seviyelerin kontrol edilmesi, siparişte yanlış bir hesaplanmış seviye belirtilmişse yeniden hesaplanması vb.

Bekle... sonunda neye ihtiyacım olduğunu anla...

İşte ihtiyacım olan sipariş açılışı - OrderSend (Symbol(),OP_SELL,0.1,Bid,3,0,0); . Ve bu komut dosyası çalışıyor.

Şimdi bir kapatmaya ihtiyacım var......