[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 126

 
eddy :
그렇다면 손실DecreaseFactor 는 무엇입니까?

손실 - 거래 손실

DecreaseFactor - 연속 손실 거래의 로트 감소 정도.

 

Sergey_Rogozin :

DecreaseFactor=3이고 손실=3이면 공식에 따라 Lot=0 !!!

손실>3이면 Lot<0

여기서 거래가 열리지 않을 것입니다. 그것이 계산의 목적입니다)

무익한게 너무 많다면

 
sergeev :
그래서 아무 일도 일어나지 않을 것입니다. Funk2 함수 - 값을 반환하지 않습니다. 그녀는 공허 하다

이 경우 함수

 void TestFunction ( double &return_value1, double &return_value2)
 
sergeev :
펑크2 기능
펑크 :)
 
eddy :

여기서 거래가 열리지 않을 것입니다. 그것이 계산의 목적입니다)

무익한게 너무 많다면

따라서 이것은 완전히 켤 기회를 닫습니다.

그렇다면 수익성 있는 거래를 어디로 가져가야 할까요? ))))

 
Sergey_Rogozin :

따라서 이것은 완전히 켤 기회를 닫습니다.

음, DecreaseFactor 를 설정하거나 작게 설정하지 마십시오)
 
Sergey_Rogozin :

손실 - 거래 손실

DecreaseFactor - 연속 손실 거래의 로트 감소 정도.

 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 :

네, 바로 제가 말하는 것입니다.

손실 / DecreaseFactor >= 1 ????

아 아 아 아! 초기 Lot으로 열립니다.

고맙습니다.

 
Sergey_Rogozin :

네, 바로 제가 말하는 것입니다.

손실 / DecreaseFactor >= 1 ????

이전 항목이 수익성이 없는 경우 3으로 나누고 분할할 때 로트가 최소값보다 작으면 최소 로트의 기능이 입력됩니다.
lot = minlot;
 
Martingeil :
이전 항목이 수익성이 없는 경우 3으로 나누고 분할할 때 로트가 최소값보다 작으면 최소 로트의 기능이 입력됩니다.

네 감사합니다!

알았다.