Yarım lotları kapatmak. - sayfa 15

 
ben bunu kullanıyorum? Bunu yukarıdaki " if (OpenOrdersThisPair( Symbol ())> 0 )" ile birleştirin, bu EA'ları her bir çiftten ayrı tutmalı mı? Yine de ne dediğini anlıyorum. Yarıya indirilmiş bir işlemi OrderOpenTime() kullanmayan bir işlemden nasıl ayırt edebileceğime dair herhangi bir öneriniz var mı? Doğru yönde küçük bir tekme...?

 //+----------------------------------------------------------------------------------------------------------------------------------------+  
//| Check to see if any order open on this currency pair                                                                                   |
//+----------------------------------------------------------------------------------------------------------------------------------------+   

int OpenOrdersThisPair( string pair)
  {
   int total= 0 ;
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
       if (OrderSymbol()==pair) total++;
     }
   return (total);
  }
 
DomGilberto :
ben bunu kullanıyorum? Bunu yukarıdaki " if (OpenOrdersThisPair( Symbol ())> 0 )" ile birleştirin, bu EA'ları her bir çiftten ayrı tutmalı mı?

Hayır, çalışan 2 EA'nız olduğunu ve her birinin açık bir Siparişi olduğunu varsayalım, OpenOrdersThisPair() işlevi tarafından yapılan son OrderSelected() öğesinin yanlış olması için 50:50 şansınız var. . . işlev bir tane döndürür, ancak yanlış Sırayı seçmiş olabilirsiniz.
 
Beni bağışlayın, ama bunun nasıl doğru olduğunu anlamıyorum? OrderSymbol()==pair? Yani EURUSD'ye bağlı olan ilgili EA, EURUSD'deki orderselect'i alır mı?
 
Bu sıralar mı? Günlükte bana bunu mu söylüyor? Peki ya "OrderSymbol()==OrderSymbol()" lol? BU sembol ise... geri zekalı olup olmadığından emin değilim...

   if (OpenOrdersThisPair( Symbol ())> 0 ) //If there is a trade open = do below, which ever is applicable.
     {
     if ( OrderSelect (OrderTicket(),SELECT_BY_TICKET, MODE_TRADES)==True)
         {   
         Print ( "The Symbol is: " , OrderSymbol());  
         }
         
         if (OrderType()==OP_BUY && OrderOpenPrice() > OrderStopLoss() && OrderSymbol()==OrderSymbol())
               {
               CloseHalfOrder(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
               }

         if (OrderType()==OP_SELL && OrderStopLoss() > OrderOpenPrice() && OrderSymbol()==OrderSymbol()) // lol? If this symbol is, this symbol...
               {
               CloseHalfOrder1(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
               }
            
2013.08.08 18:51:21	2010.02.08 01:00  Trend Fishing 3 Exits GBPJPY,H1: The Symbol is: GBPJPY

 

Ah! OrderCloseTime() ve OrderOpenTime()'ı karşılaştırırsam ne olur!?

Elbette bu, istediğimi yapmanın EN İYİ yolu olur mu? Bu şekilde istediğim kadar OrderClose işlevi ekleyebilir miyim? Sonuçta, geçmişteki OrderOpenTime()'a sahip mevcut "OP_BUY" ile aynı işlemi seçebilirdim, ancak OrderCloseTime() > OrderOpenTime() ise, bu OrderClose()'u durdurur, yarıları kapatır devamlı olarak!?!

Biri lütfen bana burada çalışacak bir şeyim olduğunu söylesin :( haha.

 
DomGilberto :
Beni bağışlayın, ama bunun nasıl doğru olduğunu anlamıyorum? OrderSymbol()==pair? Yani EURUSD'ye bağlı olan ilgili EA, EURUSD'deki orderselect'i alır mı?

Önce OrderSelect() . . . sonra kontrol edersin. .

 if (OrderSymbol()==pair) total++;

. . . bu işlev için sorun yok, eğer semboller uyuşmuyorsa, sayıyı artırmazsınız. . . ama yine de, seçtiğiniz son Düzenin üzerinde çalıştığınız sembol için olmadığı anlamına gelir.

Ek bir döngüye ihtiyacınız var ve geçerli bir sipariş bulup döngüden çıkın. . . o zaman doğru Sıra Seçilmiş olur.

 
Kafam karıştı, EA'mı bu hafta aynı anda 16 farklı çift üzerinde test ettim ve hiç yanlış olanı seçmedi :s? Bir şey mi kaçırıyorum?
 
DomGilberto :
Kafam karıştı, EA'mı bu hafta aynı anda 16 farklı çift üzerinde test ettim ve hiç yanlış olanı seçmedi :s? Bir şey mi kaçırıyorum?
Görebildiğim kadarıyla yanlış Düzeni seçmesi mümkün görünüyor, riske atmak yerine emin olmak için düzeltirdim. Kodunuzu kontrol edin, olmuyorsa düzeltmeniz gerekmez.
 

DomGilberto :
I thought that too - It says I need OrderSelect() before using OrderType, but it works? I only ever have one order open at any given time...

I can't think of how to use OrderOpenTime() to my advantage and stop CloseHalfOrder being called every time...

EA parçası siparişi kapatır, EA'nın hangi parçanın tekrar kapanmayacağını bilmesi gerekir, bu nedenle parçayı kapatmadan önce OrderOpenTime()'ı alın. Aynı OrderOpenTime() ile o para birimi çiftindeki siparişleri kapatmamak için EA kodlayın.

 
SDC :

EA parçası siparişi kapatır, EA'nın hangi parçanın tekrar kapanmayacağını bilmesi gerekir, bu nedenle parçayı kapatmadan önce OrderOpenTime()'ı alın. Aynı OrderOpenTime() ile o para birimi çiftindeki siparişleri kapatmamak için EA kodlayın.


Evet, şimdi oraya gitmeye başlıyorum - aynı OrderSymbol() üzerinde geçmişte kapanmış işlemlerle karşılaştırmam gerektiğini varsayıyorum?

Yine de sahip olduğum sorun; Aynı "OP_BUY" veya "OP_SELL" i farklı fiyatlarla 4 defaya kadar kısmi olarak kapatmaya çalışıyorum... Sanırım sormam gereken soru şu, bir yol alabilir miyim, burada TÜM kısmi bir kuralım var mı? kapanışlar (belirli BİR işlemdeki herhangi bir lotun ve fiyatın) önceden tanımlanmış "OrderClose()" parametre setlerinde yalnızca BİR KEZ kısmen kapanacaktır...

Bu şekilde, şimdi bunu OrderOpenTime()'ı karşılaştırarak yapmayı düşünüyorum, esasen yalnızca bir kez çalışacak ve diğer herhangi bir OrderClose() işlevinin gerçekleşmesini kısıtlayacaktır... Sahip olabileceğim bir yol bulmak istiyorum. 4 OrderClose() işlevine uygulanan bir kural... (eğer bu mantıklıysa?)

İnsanların açık 4 sipariş önerdiğini biliyorum, ancak çok derine inmeden bu şekilde yapmak benim için daha az verimli.