新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 543

 
Konstantin Nikitin:

谢谢你。换句话说,我们要用货币的利润除以什么?

.../(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));
   
Maxim Kuznetsov:
你不能把两个不同的工具的点数加起来。

我明白积分值是不同的,但在这种情况下并不重要。

 
PolarSeaman:

谢谢你。换句话说,我们要用货币的利润除以什么?

存款货币的 点值。
对我来说,把这个函数写在1个字符上会更加正确

int Punkts_B(const string symbol="", const int _Mag=-1)
  {
   double profit = 0;
   for(int t=0;t<OrdersTotal();t++)
     {
      if( !OrderSelect(t,SELECT_BY_POS,MODE_TRADES) )  continue;
      if( OrderSymbol()!=symbol )                      continue;
      if( OrderMagicNumber()!=_Mag )                   continue;
      if( OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;

      profit+= OrderProfit()+OrderSwap()+OrderCommission();
     }
   return( (int)MathFloor(profit/SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE)) );
  }

int xxx = Punkts_B("EURUSD", 12345) + Punkts_B("GBPUSD", 12345);
并在需要时在打电话时加分。
 
Konstantin Nikitin:

存款货币 的点值。

(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2); 这句话怎么说?

Print(Punkts_B("GBPUSD", "AUDUSD",11151)) 打印零。

 
PolarSeaman:

作为文字表达OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2))。

Print(Punkts_B("GBPUSD", "AUDUSD",11151))。

条件性运算符?

 
Konstantin Nikitin:

条件性运算符?

谢谢你。

 

同事们,帮帮我吧。

我正在试图弄清楚如何使用注册表,我已经做了一个简单的专家顾问来测试。从系统注册表读取数据没有问题,但在写入、MT和内存崩溃方面有问题......(((

也许我的眼睛已经被浸泡了,我没有看到明显的东西......。

附加的文件:
TestReg.mq5  25 kb
 

你需要把它们的名字放在分离器窗口中的曲线两端旁边,这应该是与它们相联系的。

请解释如何做到这一点。

 
khorosh:

你需要把他们的名字放在分离器窗口中的曲线两端旁边,这应该是与他们相联系的。

请解释如何做到这一点。

对象 - 它们可以在终端的任何窗口及其子窗口中显示。

 

阿尔乔姆-特里什金

对象 - 它们可以被输出到任何终端窗口及其子窗口。

--------------------------------------------------------------------------------------------------------------------------------------

我试过这样做,但没有效果。

  if(ObjectFind("Spread")<0) 
    {
     ObjectCreate(1,"Spread", OBJ_TEXT, 0, Time[0],LevLabelSpread );
     ObjectSetText("Spread", "                    Spread", 10, "Arial", clrYellow);
    }
  else
    {
     ObjectMove(1,"Spread", 0, Time[0], LevLabelSpread);
    } 
也许这与窗户的编号有关。如果图形上有一个单独的窗口,其编号==1?
 
Kirill Belousov:

在你的表达式中,将&&改为 "同时",将||改为 "或"。

你应该能够读懂,并看到它是如何工作的。


第一行将在magic =777(当hand_orders=false时)或magic = 0(当hand_orders=true时)下工作。

第二行总是在majic=777的情况下工作,而在hand_orders=true的情况下,在majic=0的情况下还能工作。

谢谢你!