[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 126

 
eddy:
那么,什么是损失和 减少系数

损失 - 无利可图的交易

DecreaseFactor - 在一系列失败的交易中,手数减少的程度。

 

Sergey_Rogozin:

如果DecreaseFactor=3, 损失=3,那么根据公式我们可以得到 Lot=0!!!

损失>3的 情况下,我们得到 Lot<0

这就是为什么交易不会被打开,这就是计算的结果)

如果有太多的失败交易

 
sergeev:
所以什么也不会发生。函数Funk2--不返回任何值,它是无效的

在这种情况下,有关的函数是

void TestFunction (double &return_value1, double &return_value2)
 
sergeev:
Funk2功能
funk:)
 
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。如果手数小于最小手数,则最小手数功能将被接管。

是的,谢谢你!

明白了。