初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1204

 
leonerd:

在交易故事中,时间尺度是什么意思?

X规模。量表上的数值是什么意思?

告诉我,交易报表中图表上的数字是什么意思?

 
leonerd:

交易报表中图表上的这些数字是什么意思?

导致余额变化的交易 的数量。

 
我没有马上明白,这是个幼稚的问题。

我如何在MT5中测试我的TS而不考虑点差?

在MT4中,一切都可以在测试器中立即看到,在MT5中,我是否应该生成一个自定义的 买入符号
 
对于使用Json的工作,这是 最好的,还是有一些更新、更正确的东西?
JSON Serialization and Deserialization (native MQL)
JSON Serialization and Deserialization (native MQL)
  • www.mql5.com
ForecastOscilator_HTF The ForecastOscilator indicator with the timeframe selection option available in the input parameters. Flat_HTF The Flat indicator with the timeframe selection option available in the input parameters. FX5_SelfAdjustingRSI_HTF The FX5_SelfAdjustingRSI...
 
Igor Makanu:
我没有马上明白,这是个幼稚的问题。

我如何在MT5中测试我的TS而不考虑点差?

在MT4中,一切都可以在测试器中立即看到,在MT5中,我是否应该生成一个自定义的买入符号?

你可以尝试打开"策略测试器"窗口,标签 "设置"--按下符号旁边的按钮 ,并纠正符号--将点差设置为 "0"。

 

MT5

请告知如何根据平衡情况实施地段增加。

但不是按百分比,而是按平衡增长值的步骤。

每增加1000美元的余额,我想以0.1的步骤来增加手数。

我的初始数据是欧元/美元对

存款(初始余额)1000美元

初始批量0.1

需要。

如果存款。

1000 ,然后是 0.1

2000年 ,然后 lot 0,2

3000 然后 lot 0,3

等等。

我现在使用这种方法。

if (Balance>= 1000 && Balance<=2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<=3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<=3000)  Lot = 0.3;

等等。

但是,我希望有一个函数,而不是这种无休止的枚举。

我试着自己编,但效果并不理想。

也许是因为规范化的问题...

请指示,也许有人有现成的解决方案或例子。

Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
  • www.mql5.com
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
 
Vladpedro:

MT5

请告知如何根据平衡情况实施地段增加。

但不是按百分比,而是按平衡增长值的步骤。

每增加1000美元的余额,我想以0.1的步骤来增加手数。

我的初始数据是欧元/美元对

存款(初始余额)1000美元

初始批量0.1

需要。

如果存款。

1000 ,然后是 0.1

2000年 ,然后 lot 0,2

3000 然后 lot 0,3

等等。

我现在使用这种方法。

等等。

但是,我希望有一个函数,而不是这种无休止的枚举。

我试着自己编,但效果并不理想。

也许是因为规范化的问题...

也许有人有现成的解决方案或例子。

在用存款除以1000时要注意商数。在存款<2000时,将有1个整数和一些十分之一、百分之一...。我们对这一点不感兴趣。2000年的存款将是2,以此类推。事实证明,只要将这个分数的整数部分乘以0.1,就能得到我们想要的东西。

而在你的名单中,有一个错误,虽然微不足道。正确的方法如下

if (Balance>= 1000 && Balance<2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<3000)  Lot = 0.3;
 
Vladpedro:

MT5

请告知如何根据平衡情况实施地段增加。

但不是按百分比,而是按平衡增长值的步骤。

每增加1000美元的余额,我想以0.1的步骤来增加手数。

我的初始数据是欧元/美元对

存款(初始余额)1000美元

初始批量0.1

需要。

如果存款。

1000 ,然后是 0.1

2000年 ,然后 lot 0,2

3000 然后 lot 0,3

等等。

我现在使用这种方法。

等等。

但是,我希望有一个函数,而不是这种无休止的枚举。

我试着自己编,但效果并不理想。

也许是因为规范化的问题...

也许有人有现成的解决方案或例子。

使用MathCeil,MathRound或MathFloor查找舍入。

请看他们如何工作的例子。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double start_balance=1000;
   double step_balance=1000;

   Print("Step ",DoubleToString(step_balance,1));

   for(int i=0; i<12; i++)
     {
      double division=start_balance/step_balance;
      Print("Balance ",DoubleToString(start_balance,1),
            ", division ",DoubleToString(division,1),
            ", MathCeil(",DoubleToString(division,1),") ->  ",MathCeil(division),
            ", MathRound(",DoubleToString(division,1),") ->  ",MathRound(division),
            ", MathFloor(",DoubleToString(division,1),") ->  ",MathFloor(division));
      start_balance=start_balance+step_balance/3;
     }
  }
//+------------------------------------------------------------------+

和结果。

Step 1000.0
Balance 1000.0, division 1.0, MathCeil(1.0) ->  1.0, MathRound(1.0) ->  1.0, MathFloor(1.0) ->  1.0
Balance 1333.3, division 1.3, MathCeil(1.3) ->  2.0, MathRound(1.3) ->  1.0, MathFloor(1.3) ->  1.0
Balance 1666.7, division 1.7, MathCeil(1.7) ->  2.0, MathRound(1.7) ->  2.0, MathFloor(1.7) ->  1.0
Balance 2000.0, division 2.0, MathCeil(2.0) ->  2.0, MathRound(2.0) ->  2.0, MathFloor(2.0) ->  1.0
Balance 2333.3, division 2.3, MathCeil(2.3) ->  3.0, MathRound(2.3) ->  2.0, MathFloor(2.3) ->  2.0
Balance 2666.7, division 2.7, MathCeil(2.7) ->  3.0, MathRound(2.7) ->  3.0, MathFloor(2.7) ->  2.0
Balance 3000.0, division 3.0, MathCeil(3.0) ->  3.0, MathRound(3.0) ->  3.0, MathFloor(3.0) ->  3.0
Balance 3333.3, division 3.3, MathCeil(3.3) ->  4.0, MathRound(3.3) ->  3.0, MathFloor(3.3) ->  3.0
Balance 3666.7, division 3.7, MathCeil(3.7) ->  4.0, MathRound(3.7) ->  4.0, MathFloor(3.7) ->  3.0
Balance 4000.0, division 4.0, MathCeil(4.0) ->  5.0, MathRound(4.0) ->  4.0, MathFloor(4.0) ->  4.0
Balance 4333.3, division 4.3, MathCeil(4.3) ->  5.0, MathRound(4.3) ->  4.0, MathFloor(4.3) ->  4.0
Balance 4666.7, division 4.7, MathCeil(4.7) ->  5.0, MathRound(4.7) ->  5.0, MathFloor(4.7) ->  4.0

我建议使用MathFloor

Документация по MQL5: Математические функции / MathFloor
Документация по MQL5: Математические функции / MathFloor
  • www.mql5.com
Математические функции / MathFloor - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
附加的文件:
1.mq5  3 kb
 
Alexey Viktorov:

在用存款除以1000时要注意商数。如果存款<2000将是1的整数和一些十分之一,百分之一。这些都是不感兴趣的。2000年的存款将包含2个,以此类推。事实证明,只要将这个分数的整数部分乘以0.1,就能得到我们想要的东西。

而在你的列举中,尽管是小事,却有一个错误。正确的是

ǞǞǞ

谢谢。我得到了除以1000并还原为整数的想法,我将尝试实现它。

<=被自动设置为,而不是来自代码。用我的手写作,而笔就是这样......)

 
Vladimir Karputov:

从MathCeil , MathRound或MathFloor中选择一个舍入操作。

他们如何工作的一个例子。

和结果。

我建议使用MathFloor

谢谢你,这正是你所需要的。