[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 47

 
Tiken123 :

KAPALI pozisyonların kayıplarının toplam bakiyesinin SL ile hesaplanması ve AÇIK karlı işlemlerin toplam bakiyesinin hesaplanması işlevini biliyorsanız lütfen yazınız.

Kayıp bakiyesinin hesaplanması, mevduatın son maksimum değerinden başlamalıdır.

Sorunuz bir öncekine biraz benziyor, bu yüzden işlevi önceki yanıttan biraz değiştirdim. Test etmediğimi itiraf ediyorum, ancak teoride çalışması gerekiyor. Global düzeyde beyan edilen kâr ve zarar değişkenleri, kapalı pozisyonlar için sırasıyla toplam kâr ve zararı göstermelidir.

Gerekirse, açık siparişlerle, geçmişte değil, OrdersTotal() kriterine göre seçmek için bir saniye for döngüsü ekleyin: for(int n=1; n<=OrdersTotal(); n++)

Ve elde edilen değerleri aynı kâr ve zarar değişkenlerine ekleyin.

 //+----------------------------------------------------------------------------+
// Прибыльно или убыточно закрылся последний ордер, и возврат типа такого ордера
int fHistory(){
  profit = 0; loss = 0;
   for ( int i=OrdersHistoryTotal(); i >= 0 ; i--){               // Выборка в истории
     if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== true ){    // Если есть следующий в истории
         if (OrderMagicNumber()!=magN) continue ;                // Ордера не нашего эксперта

         if (OrderProfit() > 0 ) profit = profit+OrderProfit(); // Если прибыль по посл.ордеру - суммируем

        if (OrderProfit() < 0 ) loss = loss + OrderProfit();   // Если убыток по посл.ордеру - суммируем

     }
  }
   return (- 1 );
}
 
Twilight :

Örneğin, bekleyen satın alma limitinin işe yarayıp yaramadığını ve eğer öyleyse, hangi fiyata olduğunu öğrenmem ve ardından yeni bir tane belirlemem gerekiyor.

OrderType() işlevini kullanarak her tikte OP_BUYLIMIT türü ile bir siparişin varlığını takip edin, bu tür kaybolduğunda siparişin açıldığı ve OP_BUY türü haline geldiği anlamına gelir. Tüm 6 tür burada listelenmiştir. OrderOpenPrice() fonksiyonunu kullanarak bir emrin hangi fiyattan açıldığını öğrenebilirsiniz.
 
Twilight :

Siparişin takip eden stop tarafından tetiklendiği nasıl anlaşılır ve takip tetiklendikten sonra yeni siparişler nasıl verilir?

Kapatılması veya değiştirilmesi (taşınması) anlamında işe yaradı mı?
Bir anlamda kapandıysa, yeni kapandığını bilmeniz gerekiyor mu? Veya Zarar Durdur'da tam olarak kapandı mı? (Hem TakeProfit hem de OrderClose() veya OrderCloseBy() fonksiyonları ile kapatılabilir)
 

İşte yeni çubuk kontrol fonksiyonum:

 bool IsNewBar()
{
   if (bartime != iTime( Symbol (),i_trading_TF, 0 ))
  {
    bartime = iTime( Symbol (),i_trading_TF, 0 );
     return ( true );
  }
  
   return ( false );
}

burada, i_trading_TF , küresel düzeyde bildirilen harici bir değişkendir. Böylece grafiğe Expert Advisor koyduğumda çıkan pencerede bu değişkene bir değer atayarak kontrol etmem gereken çubuğun açılma zamanını ayarlayabiliyorum.

Bir uzmanda, sadece fonksiyon başlığında resmi bir parametre ile benzer bir fonksiyon gördüm. Bunun gibi:

 bool IsNewBar( int i_trading_TF )
{
   if (bartime != iTime( Symbol (), i_trading_TF , 0 ))
  {
    bartime = iTime( Symbol (), i_trading_TF , 0 );
     return ( true );
  }
  
   return ( false );
}

Burada zaman çerçevesi fonksiyon parametresinden geçirilir. Ancak i_trading_TF değişkeni global düzeyde bildirilirse, bence bunu resmi bir parametreden geçirmenin bir anlamı yok, çünkü onun görünürlüğü sınırsızdır.

Lütfen bu anı yorumlayın.

İlk seçenek benim için de işe yarıyor, ancak bazı programcıların, benim yapmayacağım işlevlerle bile biçimsel parametreleri doldurma alışkanlığına sahip olmaları garip.

 
pu6ka :
OrderType() işlevini kullanarak her tikte OP_BUYLIMIT türüyle bir siparişin varlığını takip edin, bu tür kaybolduğunda, siparişin açıldığı ve OP_BUY türü haline geldiği anlamına gelir . Tüm 6 tür burada listelenmiştir. OrderOpenPrice() fonksiyonunu kullanarak bir emrin hangi fiyattan açıldığını öğrenebilirsiniz.
Gerekli değil. Ayrıca manuel olarak ezilebilir. Bunun yerine, gecikme biletini hatırlamanız gerekir; Bu biletle depozito olmadığı ve aynı biletle bir piyasa pozisyonunun ortaya çıktığı keşfedilir keşfedilmez - o zaman evet, işe yaradı ...
 
hoz :

İşte yeni çubuk kontrol fonksiyonum:

burada, i_trading_TF , küresel düzeyde bildirilen harici bir değişkendir. Böylece grafiğe Expert Advisor koyduğumda çıkan pencerede bu değişkene bir değer atayarak kontrol etmem gereken çubuğun açılma zamanını ayarlayabiliyorum.

Bir uzmanda, sadece fonksiyon başlığında resmi bir parametre ile benzer bir fonksiyon gördüm. Bunun gibi:

Burada zaman çerçevesi fonksiyon parametresinden geçirilir. Ancak i_trading_TF değişkeni global düzeyde bildirilirse, bence bunu resmi bir parametreden geçirmenin bir anlamı yok, çünkü onun görünürlüğü sınırsızdır.

Lütfen bu anı yorumlayın.

İlk seçenek benim için de işe yarıyor, ancak bazı programcıların, benim yapmayacağım işlevlerle bile biçimsel parametreleri doldurma alışkanlığına sahip olmaları garip.

Uzman Danışman birkaç çerçeveyi analiz ederse ve her biri yeni bir çubuk oluşumu gerçeğini gerektiriyorsa bir nokta vardır.

Hepsi bu kadar değil, enstrümanın adını geçen parametrelere ekliyoruz

 bool IsNewBar( string Symb, int i_trading_TF)
{
   if (bartime != iTime(Symb,i_trading_TF, 0 ))
  {
    bartime = iTime(Symb,i_trading_TF, 0 );
     return ( true );
  }
  
   return ( false );
}
ve yeni bir bar, herhangi bir enstrüman, dönem oluşumu gerçeğini analiz eder.
 
artmedia70 :
Gerekli değil. Ayrıca manuel olarak ezilebilir. Bunun yerine, gecikme biletini hatırlamanız gerekir; Bu biletle depozito olmadığı ve aynı biletle bir piyasa pozisyonunun ortaya çıktığı keşfedilir keşfedilmez - o zaman evet, işe yaradı ...

Evet, bu daha doğru. Ancak fikri test cihazında test edebilirsiniz. Dört tür beklemeyi izlemek için, biletleri izlemek için 4 ek değişkene ihtiyacınız vardır, aksi takdirde yalnızca yerleşik işlevleri kullanabilirsiniz. Aynı türden birden fazla geciktirici olsa da, biletler için mutlaka bir değişken girmeniz gerekir.
 
r772ra :

Expert Advisor'ın birkaç kareyi analiz etmesi mantıklıdır ve her biri yeni bir çubuk oluşumu gerçeğini gerektirir.

Hepsi bu kadar değil, enstrümanın adını geçen parametrelere ekliyoruz

ve yeni bir bar, herhangi bir enstrüman, dönem oluşumu gerçeğini analiz eder.

" Yeni çubuk arama mekanizmasında" sembolü "çizmeyi" uygun buluyor musunuz??? :)))
 
TarasBY :
Sembolü "çizmek" için "mekanizmada yeni bir çubuk aramanın" uygun olduğunu düşünüyor musunuz ??? :)))

Yeni çubuğun evrensel kontrolünü yapmak ilginç olurdu. Bu arada - bunun için her şey var
 
Vinin :

Yeni çubuğun evrensel kontrolünü yapmak ilginç olurdu. Bu arada - bunun için her şey var
"Hesaba katmak" ve DC'den mi bahsediyorsunuz? ;)
Neden: