Kapanan siparişleri serilere bölmek için bir koşul eklemeniz gerekiyor
Algoritmayı veya bölme ilkesini söyleyin
Serinin her bir kapalı kârı, bir öncekinin (5; 5; 5) artı değil, yeni olması nasıl yapılır? .....
Aritmetik toplam yerine, bir karakter dizisine istediğiniz gibi bir boşluk veya noktalı virgül ve boşluk kullanarak eklemek gerekir.
İyi bir fikir
Ya da belki bir dizide
Kapanan emirlerin karı doğru hesaplanır ancak kapandıktan sonra bir öncekine bir değer katar (5; 5+5=10; 10+5=15)
Serinin her bir kapalı kârı, bir öncekinin (5; 5; 5) artı değil, yeni olması nasıl yapılır?
Bir dizi kapalı emirde, alış ve satış emirleri olabilir veya sadece al ve sadece sat emirleri olabilir.
// START //
if (LastProfitCL(- 1 )< 0 ) ProfitColor=Red;
if (LastProfitCL(- 1 )> 0 ) ProfitColor=LimeGreen;
if (LastProfitCL(- 1 )== 0 )ProfitColor=DarkGray;
ObjectCreate ( "Last Profit" , OBJ_LABEL , 0 , 0 , 0 );
ObjectSet ( "Last Profit" , OBJPROP_CORNER , 1 );
ObjectSet ( "Last Profit" , OBJPROP_XDISTANCE , 5 );
ObjectSet ( "Last Profit" , OBJPROP_YDISTANCE , 15 );
ObjectSetText ( "Last Profit" , StringConcatenate ( "Last Profit: " , DoubleToStr (LastProfitCL(- 1 ), 2 )), 10 , "Arial" ,ProfitColor);
// END START //
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция)
double LastProfit= 0 ;
for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
if ( OrderSymbol ()!= Symbol ()) continue ;
if ( OrderMagicNumber ()!= magic) continue ;
if ( OrderType ()!= op) continue ;
if (op< 0 || OrderType ()==op) {LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();}
}
return (LastProfit);
}
Her şey karmaşık, belki daha kolay bir şey var mı?
Ve örnekler verilebilir, yoksa beyinler kaynar mı?
Her şey karmaşık, belki daha kolay bir şey var mı?
Hayır, daha kolay olmayacak. LastProfitCL işlevinin uygulandığı önceki zamanlarda sayılanlar da dahil olmak üzere TÜM siparişleri her zaman sayarsınız. Ve daha fazla sipariş olduğu için kar miktarı da artıyor.
Yeni siparişler tükendiğinde döngünün kesintiye uğramasına göre bir koşul belirlemek gerekir.
Yeni siparişler tükendiğinde döngünün kesintiye uğramasına göre bir koşul belirlemek gerekir.
İşte doğru düşünme şekli))
İşte doğru düşünme şekli))
İyi?
Durum nerede?
İyi?
Durum nerede?
bunun gibi bir şey:
if (op< 0 || OrderType ()==op) {lastprof+= OrderProfit ()+ OrderCommission ()+ OrderSwap (); cnt++}
ve bir şekilde cnt new'u geçmişten çıkarmanız gerekiyor
cnt 1,2,3 geçmiş
cnt 4,5,6 yeni
bunun gibi bir şey:
if (op< 0 || OrderType ()==op) {lastprof+= OrderProfit ()+ OrderCommission ()+ OrderSwap (); cnt++}
ve bir şekilde cnt new'u geçmişten çıkarmanız gerekiyor
cnt 1,2,3 geçmiş
cnt 4,5,6 yeni
Hayır, zaten yazdıklarınızdan bahsetmiyorum.
Kelimelerle anlatın - ilgilendiğiniz kapalı siparişler için kar hesaplaması
Örneğin:
- günlük
- kârsız
- Son sipariş
ya da başka nasıl?
Seriyi tanımlayın
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Kapanan emirlerin karı doğru hesaplanır ancak kapandıktan sonra bir öncekine bir değer katar (5; 5+5=10; 10+5=15)
Serinin her bir kapalı kârı, bir öncekinin (5; 5; 5) artı değil, yeni olması nasıl yapılır?
Bir dizi kapalı emirde, alış ve satış emirleri olabilir veya sadece al ve sadece sat emirleri olabilir.
// START //
if (LastProfitCL(- 1 )< 0 ) ProfitColor=Red;
if (LastProfitCL(- 1 )> 0 ) ProfitColor=LimeGreen;
if (LastProfitCL(- 1 )== 0 )ProfitColor=DarkGray;
ObjectCreate ( "Last Profit" , OBJ_LABEL , 0 , 0 , 0 );
ObjectSet ( "Last Profit" , OBJPROP_CORNER , 1 );
ObjectSet ( "Last Profit" , OBJPROP_XDISTANCE , 5 );
ObjectSet ( "Last Profit" , OBJPROP_YDISTANCE , 15 );
ObjectSetText ( "Last Profit" , StringConcatenate ( "Last Profit: " , DoubleToStr (LastProfitCL(- 1 ), 2 )), 10 , "Arial" ,ProfitColor);
// END START //
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL( int op=- 1 ){ //"op" позиция (-1 любая позиция)
double LastProfit= 0 ;
for (i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ) && ( OrderType ()== OP_BUY || OrderType ()== OP_SELL ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==magic) {
if ( OrderType ()!= op || OrderSymbol ()!= Symbol () || OrderMagicNumber ()!= magic) continue ;
if (op< 0 || OrderType ()==op) {LastProfit+= OrderProfit ()+ OrderCommission ()+ OrderSwap ();}
}
return (LastProfit);
}