Yarım lotları kapatmak. - sayfa 17

 
SDC :

Hiç mantıklı düşünmüyorsun. Sihirli sayıyı değiştirmek, OrderOpenTime()'ı bilmekten daha fazla size nasıl yardımcı olur? Aynı şeye tekabül ediyor.


Çünkü bir siparişle birden çok kısmi kapatma yapmam gerekiyor... Bir OrderClose() yaparsam ve OrderOpenTime() ile karşılaştırırsam ve sonra aynı Order ile başka bir OrderClose() yaparsam, ancak yine OrderOpenTime() kullanarak karşılaştırırsam, bu çalışmayacak, çünkü geçmiş içinde kapalı bir emir olacak ve ikinci OrderClose() fonksiyonunu kapatmayacak...

Şimdi, bir Magicnumber 1234 kullanarak OrderClose() yapabilseydim ve sonra OrderClose() tamamlandıktan sonra, emirlerin sihirli numarasını 12345 olarak değiştirebilirdim, bu nedenle MagicNumber 1234 olarak adlandırılan ilk fonksiyon artık kalanlar için geçerli olmayacaktı. kalan siparişe artık sihirli bir sayı 12345 atanmıştır. Şimdi bu MagicNumber 12345 ile, bunu başka bir OrderClose() işleviyle (uygulanabilir olduğunu varsayarak) kullanabilir ve sahip olduğum, çalışana ve çalışana kadar işlemi tekrarlayabilirim nasıl olmasını istiyorum.

O zamana kadar OrderOpenTime() yalnızca bir kez çalışabilir...
 
Sadece düşündüm ve yanılıyorsam düzeltin, ama ya OrderOpenTime() VE OrderCloseTime() kullanırsam?

Geçerli OrderOpenTime()'ı aynı Symbol() üzerindeki tarihsel olarak kapalı konumlarla karşılaştırırsam ve HİÇBİR eşleşme bulamazsam, CloseOrder() çalışacaktır. Şimdi, ikinci CloseOrder() işlevi çağrılırsa (ilk CloserOrder()'dan daha yüksek bir fiyat ve aynı siparişte daha fazla lotu kapatmak istiyorsam), OrderOpenTime() VE OrderCloseTime()'ı karşılaştırabilirim. OrderOpenTime(OpenPosition) == OrderOpenTime(History) && OrderCloseTime(history) > OrderOpenTime(OpenPosition) SONRA OrderClose() ise ikinci işlev...?
 

Pekala, daha önce çoklu kısmi kapanışlar hakkında hiçbir şey söylemedin, sadece siparişi yarı yarıya kapatmak istediğini söyledin, ama her halükarda bunu çok fazla düşünüyorsun ve bariz olanı tamamen kaçırıyorsun.

OrderOpenTime() neden yalnızca bir kez çalışıyor?

statik tarihsaat bölümükapanış;

statik tarihsaat bölümü iki kez kapalı;

Sipariş, bölüm kapatma kriteri seviye 1'i karşılıyorsa ve açılma zamanı, parça kapanmasıyla eşleşmiyorsa, parçayı kapatın, parça kapanmasına zaman damgası ekleyin.

Eğer sipariş, seviye 1 parça kapama kriterini karşılıyorsa ve açık kalma zamanı, parça kapalıyken eşleşiyorsa, zaten bir kez kapalıydı, bu yüzden henüz parçayı kapatmayın.

Sipariş, kısım kapatma kriteri düzeyi 2'yi karşılıyorsa ve kısımkapalı iki kez eşleşmiyorsa, kısmen kapatın ve zaman damgasını değişkene, yarı kapalı iki kez ekleyin.

 

Ayrıca OrdersHistory ile hiçbir şey yapmaktan kaçınmalısınız. Uzun bir geriye dönük test yaparsanız, geçmişte yüzlerce, hatta binlerce siparişiniz olabilir, EA'nız her onayda açık siparişinizi hepsiyle karşılaştırıyor olacaktır. Bunu yapmak çok yavaştır ve geriye dönük testleriniz, ne kadar uzun süre çalışırlarsa, geçmiş o kadar büyürken, acı verici bir şekilde yavaşlar ve yavaşlar.

 
SDC :

Ayrıca OrdersHistory ile hiçbir şey yapmaktan kaçınmalısınız. Uzun bir geriye dönük test yaparsanız, geçmişte yüzlerce, hatta binlerce siparişiniz olabilir, EA'nız her onayda açık siparişinizi hepsiyle karşılaştırıyor olacaktır. Bunu yapmak çok yavaştır ve geriye dönük testleriniz, ne kadar uzun süre çalışırlarsa, geçmiş o kadar büyürken, acı verici bir şekilde yavaşlar ve yavaşlar.


O zaman başka nasıl yapabilirim...?
 

sana nasıl yapılacağını gösterdim!! Bundan daha basit bir yolu varsa, ne olduğunu bilmek isterim. İstersen bunu tarihle yap, ben sadece sana bu şekilde yapma konusunda fikrimi veriyordum, hepsi bu.

 
SDC :

sana nasıl yapılacağını gösterdim!! Bundan daha basit bir yolu varsa, ne olduğunu bilmek isterim. İstersen bunu tarihle yap, ben sadece sana bu şekilde yapma konusunda fikrimi veriyordum, hepsi bu.


Oh, statik tarih saatinin OrderClose() tarihini ve saatini tuttuğunu görüyorum, böylece geçmişle ilgili herhangi bir şeye bakmak yerine, mevcut siparişin ilk açılış saati ile karşılaştırabilirim?
 

evet

 
Güzel bir - yardımın için teşekkürler!

Statik Datetime benim için oldukça yeni, bu yüzden yarın bunun üzerinde çalışacağım ve nereye gideceğimi göreceğim! Umarım o zaman kodumun bu can sıkıcı kısmını sıralarım :)
 
SDC :

Pekala, daha önce çoklu kısmi kapanışlar hakkında hiçbir şey söylemedin, sadece siparişi yarı yarıya kapatmak istediğini söyledin, ama her halükarda bunu çok fazla düşünüyorsun ve bariz olanı tamamen kaçırıyorsun.

OrderOpenTime() neden yalnızca bir kez çalışıyor?

statik tarihsaat bölümükapanış;

statik tarihsaat bölümü iki kez kapalı;

Sipariş, bölüm kapanış kriterleri seviye 1'i karşılıyorsa ve açılış zamanı, parça kapanmasıyla eşleşmiyorsa, parçayı kapatın, parça kapanmasına zaman damgası ekleyin.

Eğer sipariş, seviye 1 parça kapama kriterini karşılıyorsa ve açık kalma zamanı, parça kapalı ile eşleşiyorsa, zaten bir kez kapalıydı, bu yüzden henüz parçayı kapatmayın.

Sipariş, kısım kapatma kriteri seviye 2'yi karşılıyorsa ve kısımkapalı iki kez eşleşmiyorsa, kısmen kapatın ve zaman damgasını değişkene iki kez yarı kapalı ekleyin.


beceriyor! Bu bir zevkti - Ben de hayal ettiğimden çok daha kolay! Bakmaya başladım, 5 dakika sonra çalıştırdım :) Yardımın için çok teşekkür ederim! Şimdi birden çok OrderClose() işlevimi birleştireceğim ve onu çalıştırabilecek miyim diye bakacağım. Bunu yaptıktan sonra, burada başkalarından aldığım yardımı geri vermek için başka bir konu açacağım! Bence bu kesinlikle başkalarının bir zamanlar kısa olan gönderide kullanabileceği bir şey.

Henüz ormandan çıkmadım, ancak bu statik tarih, bu orderclose() ile mükemmel çalışıyor. Diğerlerinde neden olmaması gerektiğini anlamıyorum :)