OrderModify() sorusu - sayfa 2

 
WhooDoo22 :

Ah-ha! 0 numaralı bileti 1'e çevirdim ve her şey saat gibi çalıştı. Evet, yanılmışım William... OrderSelect() işlevi bir sorundu. Açıkçası OrderSelect() işlevi bir bilet seçmelidir. Bilet numarası 0 ise, EA hangi bileti seçecek? :Ö "?". Yardımlarınız için ikinize de teşekkür ederim.

Teşekkür ederim.

Bilet numarası ASLA 0 olmayacak. . . geçerli bir bilet numarası değil.


Lütfen bu konuya bakın: https://www.mql5.com/en/forum/142545
 

Simon, anlıyorum ki 0 geçerli bir bilet numarası değil ÇÜNKÜ 0 seçilecek bilet olmadığı anlamına geliyor. 1, bir bileti VE OrderSelect() işlevinin seçmeye çalıştığı özel bilet numarasını temsil eder.

Konuyu okuyacağım. Gönderdiğiniz için teşekkür ederiz.

Teşekkür ederim.

 
WhooDoo22 :

0'ın geçerli bir bilet numarası olmadığını anlıyorum ÇÜNKÜ 0 seçilecek bilet olmadığı anlamına gelir. 1, bir bileti VE OrderSelect() işlevinin o anda seçtiği özel bilet numarasını temsil eder.

Hayır, bu doğru değil. sıfır olarak bilet numarası bir şey ifade etmez, GEÇERSİZDİR. OrdersTotal() == 0, sipariş olmadığı anlamına gelir. . . farklı işlevler ve bilet numaraları ile sipariş pozisyonlarından elde edilen sonuçları karıştırdığınız çok açık


Daha önce yaptığınız şeyi tam olarak yapmayın. . . . tam olarak aynı sonucu istemiyorsanız. Doğru bilet numarasına sahip olduğunuzu varsayamazsınız .. . . Sipariş Havuzunda bulmanız ve ardından seçmeniz gerekir. . .

Öğrenmek istiyorsanız bu alıştırmayı yapın:

  • herhangi bir Broker ile yeni bir Demo hesabı açın
  • TP veya SL içermeyen 0,1 lot için piyasa emri verin
  • bu sipariş için doğru bilet numarasını bulabilecek bir kod yazın, ardından siparişi seçmek için bilet numarasını kullanın, ardından bir TP & SL olacak şekilde değiştirin ve son olarak kapatın.

 
RaptorUK :

Hayır, bu doğru değil. sıfır olarak bilet numarası bir şey ifade etmez, GEÇERSİZDİR. OrdersTotal() == 0, sipariş olmadığı anlamına gelir. . . farklı işlevlerden ve bilet numaralarından elde edilen sonuçları karıştırdığınız açık

Öğrenmek istiyorsanız bu alıştırmayı yapın:

  • herhangi bir Broker ile yeni bir Demo hesabı açın
  • TP veya SL içermeyen 0,1 lot için piyasa emri verin
  • bu sipariş için doğru bilet numarasını bulabilecek bir kod yazın, ardından siparişi seçmek için bilet numarasını kullanın, ardından bir TP & SL olacak şekilde değiştirin ve son olarak kapatın.


Egzersizi denedin mi? yaptığınızda kodunuzu gösterin. . .
 

Simon,

Bu projeyi kodlayacağım . Bir parça kek olmalı . Zaten işin büyük kısmını yaptım. ;)

Evet, tutarlı desteğinizi sağladığınızı görerek bu alıştırmayı yapmakta bir sakınca görmüyorum.

Teşekkür ederim.

 

Simon,

Tamamlandı. Dosyayı komut dosyası biçiminde istediğinizi varsaydım, böylece onu bir çizelgeye sürükleyip bırakabilir, EA'nın birkaç sayı sıkıştırmasını bekleyebilir ve ardından piyasadan bir sipariş çekmesini izleyebilirsiniz.

Şu anda inşa etmekte olduğum proje ile bu proje arasındaki farklar...

Şu anda bina:

 if(OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)){

Bu proje:

 if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)){

"if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)){" kullanmamın nedeni, önceden tanımlanmış belirli bir bilet değişkeni değil , bir sipariş havuzuyla uğraşıyor olmamdır.

Cilt II için şu anki derlemem önceden tanımlanmış değişkenler kullanıyor çünkü cilt II'nin stratejisini çalıştırmak için belirli biletleri seçmem gerekiyor. Bu proje, bir siparişi göz açıp kapayıncaya kadar kapatmak için tasarlandı.

Ask/Bid fiyatını içeren fonksiyon yürütmeyi kodlarken aslında kafamda birkaç soru işareti yükseldi. Bunun nedeni, genellikle emir gönderirken/kapatırken, genellikle sadece "Sor"/"Teklif" yazardım, ancak siparişin piyasada olması durumuna göre Satış veya Teklif fiyatları olabilecek bir değişken tanımlamam gerektiğini fark ettim. bir satış VEYA satın alma emriydi . Sonra, her zamanki "sipariş toplamı sıfırdan büyükse" dedim, her şey hazırdı. Bu hemen hemen onu kapsamalıdır.

Teşekkür ederim.

Dosyalar:
 

Tamam, amaçladığım bu değildi ama gereksinimlerim konusunda daha net olmalıydım. . . kodunuz bir SL & TP ayarlamıyor. . . ama yine de ihtiyacımı gözden geçirmeme izin ver. . .

Aynı Demo hesabını kullanma . . .

  • GBPUSD'de TP veya SL'siz 0.1 lot için, USDJPY'de bir ve EURUSD'de bir piyasa emri verin. . . bu Siparişleri verdiğiniz sırayı unutun
  • alım satımların yapıldığı emri dikkate almadan ve verilen emir sayısı hakkında önceden bilgi sahibi olmadığınızı varsayarak USDJPY'ye verilen sipariş için doğru bilet numarasını bulan bir kod yazın
  • bilet numarasını "USDJPY için bilet numarası =" biçimindeki günlüğe yazdırın
  • ardından siparişi seçmek için bilet numarasını kullanın, ardından bir TP & SL'ye sahip olacak şekilde değiştirin ve son olarak kapatın.

daha sonra işiniz bittiğinde lütfen kodunuzu ve kayıttaki bilet numarasını gösteren satırı gösterin

 

Simon,

Ah, üzgünüm, ilk talimatlarınızı tam olarak okumadım ve istediğinizi kodlamadım. Pekala, yeni bir ihtiyaç listesi ekledin, o yüzden meşgul olacağım.

yapmadan önce, yapmak üzere olduğum şeyi belirteceğim...

1. USDJPY'ye verilen siparişin bilet numarasını bulun.

2. "USDJPY için bilet numarası = " biçimindeki kayıt defterine bilet numarasını yazdırın.

3. Siparişi seçmek ve siparişi bir TP & SL'ye sahip olacak şekilde değiştirmek ve kapatmak için bilet numarasını kullanın.

4. Kodu ve günlükten bilet numarasını gösteren bir satırı gösterin.


Bununla birlikte, aynı sayfada olduğumuzu netleştirmek istiyorum.

Evet, 1. yapabilirim (belli ki biletleri ayırmak için "para birimi işlevlerini" kullanamam değil mi?)

Evet 2 yapabilirim.

3. Siparişi seçmek VE TP & SL'ye sahip olacak şekilde değiştirmek ve kapatmak için OrderSelect() işlevini kullanıp bunu demek istemiyor musunuz?

4. Açıkçası, kodu göstereceğim ;)... bilet numarasını gösteren günlükten bir satır (istediğiniz şey, bilet numarasını gösteren günlüğün "görsel bir enstantanesi" idi. Önemli değil)

Lütfen göreve başlamadan önce bir yanıt gönderin.


Teşekkür ederim.

 
WhooDoo22 :


Bununla birlikte, aynı sayfada olduğumuzu açıkça belirtmek istiyorum.

Evet, 1. yapabilirim (belli ki biletleri ayırmak için "para birimi işlevlerini" kullanamıyorum değil mi?)

Evet 2 yapabilirim.

3. Siparişi seçmek VE TP & SL'ye sahip olacak şekilde değiştirmek ve kapatmak için OrderSelect() işlevini kullanıp bunu demek istemiyor musunuz?

4. Açıkçası, kodu göstereceğim ;)... bilet numarasını gösteren günlükten bir satır (istediğiniz şey, bilet numarasını gösteren günlüğün "görsel bir enstantanesi" idi. Önemli değil)

Kodladığınız şey gereksinimi karşıladığı sürece istediğiniz işlevi kullanabilirsiniz. . . ve bunu yaparken, örneğin " işlemlerin yapıldığı emri dikkate almadan ve verilen emir sayısı hakkında önceden bilgi sahibi olmadan " bir koşul olarak verilenleri ihlal etmiyorsunuz. :-)
 
Nasıl gidiyor ? Herhangi bir açıklamaya veya ipucuna ihtiyacınız var mı?
Neden: