[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 126

 
eddy :
Peki, o zaman kayıplar ve DecreaseFactor nedir?

kayıplar - esnaf kaybetmek

DecreaseFactor - seri kaybetme işlemlerinde Lot azalma derecesi.

 

Sergey_Rogozin :

DecreaseFactor=3 ve kayıplar=3 ise, formüle göre Lot=0 !!!

Kayıp>3 ise, Lot<0 alırız

burada anlaşma açılmayacak, hesaplama bunun için)

eğer çok fazla kârsız varsa

 
sergeev :
yani hiçbir şey olmayacak. Funk2 işlevi - herhangi bir değer döndürmez. o boş

Bu durumda, fonksiyon

 void TestFunction ( double &return_value1, double &return_value2)
 
sergeev :
Funk2 işlevi
korkak :)
 
eddy :

burada anlaşma açılmayacak, hesaplama bunun için)

eğer çok fazla kârsız varsa

Yani bu, hiç açılma fırsatını kapatıyor.

O zaman karlı işlemleri nereye götürmeli? ))))

 
Sergey_Rogozin :

Yani bu, hiç açılma fırsatını kapatıyor.

peki, DecreaseFactor'u ayarlamayın veya küçük ayarlamayın)
[Deleted]  
Sergey_Rogozin :

kayıplar - esnaf kaybetmek

DecreaseFactor - Seri kaybetme işlemlerinde Lot'un azalma derecesi.

 extern string a = "ЛОТ ММ" ;
extern bool    MM=false;       // если false - то работает обычный лот, если true - работает ММ
extern double Lots = 0.1 ;     // обычный лот
extern double balans = 200 ;   // баланс при увеличении которого, следующий лот будет увеличен на лот MaximumRisk При ММ
double MaximumRisk = 0.1 ;     // лот прибавляемый к предыдущему при ММ
double DecreaseFactor = 3.0 ; // если позиция проигрышная то следующая позиция откроется с лотом /3 При ММ



double LotsOptimized() {
double lot = Lots;
double minlot = MarketInfo( Symbol (), MODE_MINLOT);
double maxlot = MarketInfo( Symbol (), MODE_MAXLOT);
if (MM){
int orders = OrdersHistoryTotal();
int losses = 0 ;
lot = NormalizeDouble (AccountFreeMargin() * MaximumRisk / balans, 2 );
if (DecreaseFactor > 0.0 ) {
for ( int i = orders - 1 ; i >= 0 ; i--) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
Print ( "Error in history!" );
break ;
}
if (OrderSymbol() != Symbol () || OrderType() > OP_SELL) continue ;
if (OrderProfit() > 0.0 ) break ;
if (OrderProfit() < 0.0 ) losses++;
}
if (losses > 1 ) lot = NormalizeDouble (lot - lot * losses / DecreaseFactor, 2 );
}}
if (lot < minlot) lot = minlot;
if (lot > maxlot) lot = maxlot;
return (lot);}
 
Martingeil :

Evet, tam olarak bundan bahsediyorum.

Kayıplar / DecreaseFactor >= 1 olduğunda ne olur ????

Ah ah ah ah! İlk Lot ile açılacaktır.

Teşekkür ederim.

[Deleted]  
Sergey_Rogozin :

Evet, tam olarak bundan bahsediyorum.

Kayıplar / DecreaseFactor >= 1 olduğunda ne olur ????

3'e bölme olacak, öncekinin kârsız olması durumunda, parti bölme sırasında minimumdan küçükse, minimum partinin işlevi girecektir.
lot = minlot;
 
Martingeil :
3'e bölme olacak, öncekinin kârsız olması durumunda, parti bölme sırasında minimumdan küçükse, minimum partinin işlevi girecektir.

Evet teşekkür ederim!

Anladım.