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

 
Tigerfreerun:
If (OP_BUY==0)

なぜ誤解を招くようなことをするのですか?自分が知らないのなら、HELPスレッドに無知を持ち込まないでほしいか、冗談で言っているだけで、真面目な初心者のヘルプスレッドにいることを忘れているのか、どちらかでしょう。

SanNneK:
ここで、すべての注文がゼロの場合の条件としてif(OrdersTotal()==0) がありますが、ベイがゼロの場合はどのような条件を書けばいいのでしょうか

すべての注文をループして、OrderType()==ORDER_TYPE_BUYで注文数を 計算する必要があります。

 
Artyom Trishkin:

なぜ誤解を招くようなことをするのですか?知らないならHELPスレで無知を晒すな、それとも冗談で言ってるだけで、真面目な初心者向けヘルプスレにいることを忘れてるのかどっちだ?

すべての注文をループして、OrderType()==Order_TYPE_BUYの注文数を 計算する必要があります。

聞いてください。前ページで紹介したこの機能、私自身は注文の集計に使っているのですが、この機能についても教えていただければと思います。

int Count(int type,string sy)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {if(sy==OrderSymbol() && OrderMagicNumber()==Magic && (type==-1 || OrderType()==type)) count++;}
     }
   return(count);
  }
 
Tigerfreerun:

聞いてください。最後のページに書いた関数について教えていただければ幸いです。 私自身、この関数を注文のカウントに使っています。

どのようなお手伝いが必要ですか?キムさん流に言えば、かなりのワーキングファンクションです。
 
Alexey Viktorov:
どのようなサポートが必要ですか?キムさん流に言えば、かなりのワーキングファンクションです。

最後のページで、ArraySort関数の開始位置0が正しくないという エラーが出ている関数を書きました。そして、機能説明の要望。重複している

void MaxMinProfit()
{
int i, N, MaxTic, MinTic;
double   MinProf=0, MaxProf=0, OP, g, a[][2];
string MinSym, MaxSym;
ArrayResize(a, 0);
 
for (i=OrdersTotal()-1; i>=0; i--) 
  {    
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
    { 
     if (OrderType()==OP_SELL ||  OrderType()==OP_BUY )
      {
       OP = NormalizeDouble(OrderProfit()+OrderSwap()+OrderCommission(),2);
       
      if (MinProf>OP) 
      {
       
          MinProf=OP;
          MinTic=OrderTicket();
          MinSym=OrderSymbol();
          
         }
         
      if (OP>0) 
      {
       
          N++;
            ArrayResize(a, N);
            a[N-1][0]=OP;
            a[N-1][1]=OrderTicket();
          
         }
         
         }
         }
         
         }
         
      ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);//MODE_ASCEND);
      
      for (i=0; i<Level; i++) 
       {
     
     g+=a[i][0];
     //int ti=a[i-2][1];
     }
         
         
     
     if(MinProf <0 && (g+MinProf)>=ProcMax)
      {
       for (i=0; i<Level; i++) 
       {
       if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
        {
        //Alert(a[i][1]);
         if (OrderType()== OP_BUY)
         {
          OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
           OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }
         }
          
          
          
          if (OrderSelect(MinTic, SELECT_BY_TICKET, MODE_TRADES))
        {
         if (OrderType()== OP_BUY)
         {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }}       
return;
}
 

クラス要素とクラス要素の間でパラメータを渡すには、どのような方法がありますか?

与えられた。

class element{
public:
int a;
        void fnc(){
        a++;            
        }
};

class elementBase{
public:
	 int b;
        element one;
        element two;
};

a.fnc()関数からtwo.aの値を変更する方法はありますか?


私の問題では、クラス1の 要素が変更された場合、クラス2の 変数が再計算される必要があります。(綺麗にやる方法を教えてください)

elementBase クラスからbの値を取得する方法はありますか?

 
Tigerfreerun:

最後のページで、ArraySort関数の開始位置0が正しくないという エラーが出ている関数を書きました。そして、機能説明の要望。デュプリケート

考えるべき方向:利益がゼロより少ない場合...ソート時の配列のサイズはどうなるのでしょうか?

注文がまったくない場合、配列のサイズはどうなるのでしょうか?
 
Alexey Viktorov:

考えるべき方向性:利益が0より少ない場合...ソート時の配列の大きさは?

また、注文が全くない場合の配列の大きさはどうなるのでしょうか?
この機能が具体的に何をするものなのか、よく理解できていません。しかし、著者が述べたように、私の仕事は、シンボル間で負けた注文と儲かった注文を重ねることです。この機能を修正し、理解するための手助けをしていただければ幸いです。
 
Tigerfreerun:
この機能が具体的に何をするものなのか、よくわからないのですが。しかし、著者が言っているように、その仕事はシンボル間で負けた注文と儲かった注文を重ねることである。機能の修正と理解を助けていただければ幸いです。

コンパイルエラーは何ですか?スクリーンショットを表示する。

コードに誤りは ありませんが、機能に影響のない程度の小さな瑕疵があります

 
Vitaly Muzichenko:

コンパイルエラーは何ですか?スクリーンショットを表示する。

コードに誤りは ありませんが、性能に影響のない範囲で細かいバグがあります

ロボットを動かすと「ArraySort関数の開始位置が0でない」と表示されるのですが、この関数の説明を いただければ、何が問題なのかがわかるかもしれません。
ファイル:
yOXZsAXZ-X4.jpg  479 kb
Pe3JLH8tgCc.jpg  556 kb
 
Tigerfreerun:
ロボットの起動時に「ArraySort関数の開始位置0が正しく ありません」と表示されるのですが、この関数について教えて ください。

なるほど、致命的でないミスを示してくれましたね。

機能の仕組みは、あなた自身が答えています。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MQL4に関する初心者の質問、アルゴリズムやコードに関するヘルプやディスカッションを行います。

タイガーフリーラン さん 2018.09.06 21:53

この機能が具体的に何をするものなのか、よくわからないのですが。しかし、著者が言ったように、課題はシンボルの間に負けた注文と儲かる注文を重ねる ことである。この機能を修正し、理解するための手助けをしていただければ幸いです。