MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 543

 
Konstantin Nikitin:

ありがとうございます。つまり、通貨建ての利益を何で割るか?

.../(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));
   
マキシム・クズネツォフ
2つの異なる楽器のポイントを合算することはできません。

ポイント値が違うのはわかるが、この場合は関係ない。

 
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)) prints zero;

 
PolarSeaman:

単語式として(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));

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

条件演算子「?

 
Konstantin Nikitin:

条件演算子「?

ありがとうございます。

 

同僚よ、助けてくれ。

レジストリの操作方法を考えていて、試しに簡単なExpert Advisorを作ってみました。システムレジストリからのデータ読み込みは問題なく行えますが、書き込みに問題があり、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つある場合、その番号==1?
 
Kirill Belousov:

を "AND AT THE SAME TIME "に、||を "OR "に置き換えてください。

を読めば、その仕組みがわかるはずです。


最初の行は magic =777 (hand_orders=false のとき) または magic = 0 (hand_orders=true のとき) のどちらかで動作します。

2行目はmajic=777で常に動作し、hand_orders=trueではmajic=0で追加的に動作します。

ありがとうございました。