[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 429

 
Dimka-novitsek:

ごきげんよう!!!何か配列か何かを勘違いしていたようです。この関数は、配列に利益を入れません!!!!どんな状況でもゼロになるんです。ゼロで終わり!

int Orderasthitaem[6][3];
void Orderasthitaem()
{
 int BUY = 0, SELL = 0, BUYLIMIT = 0, BUYSTOP = 0, SELLLIMIT = 0, SELLSTOP = 0;
 double BUY_Profit = 0, SELL_Profit = 0;
 for (int i = 0; i < OrdersTotal(); i++)
  {
   OrderSelect(i, SELECT_BY_POS);  
   if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicnumber)
    {            
     int type = OrderType();
     if (type == 0) {BUY++; BUY_Profit = BUY_Profit + OrderProfit();}
     if (type == 1) {SELL ++; SELL_Profit = SELL_Profit + OrderProfit();}
     if (type == 2) {BUYLIMIT++;}
     if (type == 3) {SELLLIMIT++;}
     if (type == 4) {BUYSTOP++;}
     if (type == 5) {SELLSTOP++;}}}
       
     Orderasthitaem[0][1] = BUY;
     Orderasthitaem[0][2] = BUY_Profit;
     Orderasthitaem[1][1] = SELL;
     Orderasthitaem[1][2] = SELL_Profit;
     Orderasthitaem[2][1] = BUYLIMIT;
     Orderasthitaem[3][1] = SELLLIMIT;
     Orderasthitaem[4][1] = BUYSTOP;
     Orderasthitaem[5][1] = SELLSTOP;        
    }
  }
}
機能です。

オビアグラフは全機能の外側にあります。

 
ありがとうございます!!!
 

なぜintのような配列なのか?利益が端数になってしまったらどうしよう、でもそれは意味がないと思うし...。そう、どうやらダウブルは必要ないようなのだ!

今から再定義して試してみます。しかし、それで違いが出るのだろうか。なぜうまくいかなかったのか?試してみるか...。

 
ruslanchik:
オーダーチケットがブローカーのサーバーに保存される場合、マジクとコメントのオーダーはどこに保存されるのでしょうか?

ブローカー側のサーバーで
 
あ、配列の要素に 代入しているのはわかりました。うん、ありがとう!!!!!!!!!!
 
こんにちは、Sergey Kovalev氏によるMQL4チュートリアルを勉強していますが、他の通貨ペアの時系列配列にアクセスする方法がまだ見つかっていません。つまり、複数の通貨ペアの 時系列の配列を1つのEAにロードする必要があります。MarketInfo()関数を使って一部のデータにアクセスできることは知っていますが、問題は、リクエストIDに価格シリーズのクローズなどのパラメータが含まれていないことです。また、この制限を回避する方法があれば教えてください。
 
まだ実際にコンパイルしたり試したりしていないので、見ているだけですが。Tuckさん、ポイントはループを抜けるときにBUY_Profitの値や変数の値が保存されていないことですよね?プログラムは順次実行されますが、保存されないのですか?
 
Dimka-novitsek:
まだ実際にコンパイルしたり試したりしていないので、見ているだけですが。Tuckさん、ポイントはループ終了時にBUY_ProfitとBUTの値が保存されていないことですよね?プログラムは順次実行されますが、保存されないのですか?
ディムカノビッチェク
あ、配列の要素に代入しているのはわかりました。うん、ありがとう!!!!!!!!!!

どのようなタイプでも可能です。ただ、変数の1つがdoubleであることに気がつかなかった。ダブルが必要な場合は、ダブルを入れる。

効果はあるのか?

 

見ているだけです。И...OOOOOOOOO!!!!!!!私は私の中でこの方法を行い、そうOrderasthitaem[6][2]を宣言し、要素2配列で、それはあなたが理解している、と既に対処第三Orderasthitaem[0,2] !!!!!!!!

案の定、穴の中に犬がいる!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!OOO!!!

 
Dimka-novitsek:
まだ実際にコンパイルしたり試したりしていないので、見ているだけですが。Takmさん、ポイントはループの終了時にBUY_Profitとprue変数の値が保存されていないことですよね?プログラムは順次実行されますが、保存されないのですか?

...こんなこともできるんですね。

double Orderasthitaem[6][2];
void Orderasthitaem()
{
    double ld_Profit = 0.;
    int li_Total = OrdersTotal();
    ArrayInitialize (Orderasthitaem, 0.);
    if (li_Total == 0) return;
    for (int i = 0; i < OrdersTotal(); i++)
    {
        OrderSelect (i, SELECT_BY_POS);  
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magicnumber)
        {            
            int type = OrderType();
            ld_Profit = OrderProfit();
            Orderasthitaem[type][0]++;
            if (type > 1) continue;
            Orderasthitaem[type][1] += ld_Profit;
        }
    }
}
- 好きな人次第です。