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

 
Artyom Trishkin:

コピーしたものです。また、コピーされたものはどの程度チェックされているのでしょうか?

スムージング機能付きのインジケータを使用する場合、計算には予想以上に多くのバーが必要になります。したがって、コピーしたからといって、データがコピーされ、完全に利用できるようになるわけではありません。

配列のサイズを確認し、必要なサイズがない場合はOnTick()を終了させる方が簡単です。

また、最適化モードでは 出力されないが、通常モードではすべて動作する場合、どのようにすればよいのでしょうか?
ファイルへの出力はうまくいくのでしょうか?

 
Sergey Likho:
取引に手数料やスワップがある場合の損益分岐価格の計算について、普遍的な計算式を教えてください。

5桁の数字で表示され、米ドルで入金される場合、簡単な計算式があります。

ロット×利益(pips)=利益($)です。

買いの場合、取引にスワップや手数料が発生するため、損益分岐点は建値より少し高くなります。
(スワップや手数料がない場合、損益分岐点は始値となる)。

しかし、商品がエキゾチックであったり、気配値が4桁や2桁であったり、入金通貨が ポンドであったりする場合。上記の計算式は参考にならない。
普遍的な公式はあるのか?

もしご興味があれば、すべてを考慮した素晴らしいコードをご紹介します - https://www.mql5.com/ru/forum/58229#comment_1603761

Как получить усредненную цену позиции по двум (или более) лотам с разными ценами?
Как получить усредненную цену позиции по двум (или более) лотам с разными ценами?
  • 2015.05.01
  • www.mql5.com
Другими словами среднюю цену открытия позиции, при наличии нескольких лотов по разной цене.
 
一番遠いオープンオーダーがクローズされない理由を教えてください。やるべきことはすべてやったのに、リストの順番が狂ってしまう
int TimeSec;
//+------------------------------------------------------------------+
void start(){
if(NewSecRun()==false){return;} 
fOrderClose();}
//+------------------------------------------------------------------+
bool NewSecRun(){
if(TimeSec!=TimeSeconds(TimeCurrent())){
    TimeSec=TimeSeconds(TimeCurrent());
return (true);}   return (false);}  
//+------------------------------------------------------------------+
int fMarketOrders(int type){
   int c=0,aBuyCount=0,aSellCount=0;
     for(int i=0;i<OrdersTotal();i++){
       if(OrderSelect(i,SELECT_BY_POS)){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
               case OP_SELL:aBuyCount++;break;
              }}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;if(type==OP_SELL)c=aSellCount;
   return(c);}
//+------------------------------------------------------------------+
void fOrderClose(){     Comment("       ",fMarketOrders(OP_BUY)+fMarketOrders(OP_SELL) );
      if((fMarketOrders(OP_BUY)+fMarketOrders(OP_SELL))>=500){
          for(int i=0;i<OrdersTotal();i++){
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
          if(OrderType()==OP_SELL || OrderType()==OP_BUY){
    if( OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE) || OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE)){return;} }}} }  }
    
 
void fOrderClose()...
for
(int i=0;i<OrdersTotal();i++){           if(OrderSelect(i

ここかな。

 
Galim_V:

ここかな。

この関数は、一番最初のトランザクションを選択するようです。それが私の望むところです。何かあったんですか?

 
Rustam Bikbulatov:

この関数は、一番最初のトランザクションを選択するようです。それが私の望むところです。何かあったんですか?

私はマスターではありませんが、ここに他の閉鎖性は見当たりません。合計から選択する。
 
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
               case OP_SELL:aBuyCount++;break;

ここで、aBuyCountは「大きく」積み上がり、aSellCountは全く積み上がらない。

 
Vladimir:

ここで、aBuyCountは「大きく」積み上がり、aSellCountは全く積み上がらない。

ありがとうございました。気づかなかった!そんなことはないと思うのですが、そのせいでしょうか。

 

アフタヌーン!

mql5のサイトでMT4端末用のインジケータを購入 し、インストールしたところ、すべてうまくいったのですが、しばらく前から動かなくなりました......。開発元やForex Clubのテクニカルサポート(私は彼らの端末を持っています)に相談しましたが、助けてもらえませんでした。テクニカルサポートは私をmql.5フォーラムに送ってくれたのですが、彼らは私を助けることができませんでした。

 
paka76:

アフタヌーン!

mql5のサイトでMT4端末用のインジケータを購入 し、インストールしたところ、すべてうまくいったのですが、しばらく前から動かなくなりました......。開発元やForex Clubのテクニカルサポート(私は彼らの端末を持っています)に相談しましたが、助けてもらえませんでした。テクニカルサポートは私をmql.5フォーラムに送ってくれたのですが、彼らは私を助けることができませんでした。

このインジケーターの販売者様へ。