どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 401

 
vadynik:


正確には聞いていないかもしれませんが、つまり、グローバル変数に設定されたマジックを関数が見るかどうかということです

もちろん、そうでしょう。

グローバル変数は、グローバルに可視化されているので、グローバルです。

なにがなんだかわからない

----

しかし、マナーとして、すべてのパラメータを関数に渡すことで、呼び出し側の環境からより独立した関数にすることができます。

その理由は、関数内部の変数名をグローバル変数名から抽象化するためです。

 
そのような疑問が生じたら、Frechevのフォーラムで質問して回答をもらっています。もちろん、たくさんのアドバイスの中から正しいものを選ぶのは難しいことです。
 

sergeev:

yan720


AccountEquity()は端末とブローカーのどちらを照会するのか、教えてください。

端末へ

ありがとうございます。この情報は、パケットごとに端末に送信されるようですが...。

また、どの機能がブローカー向けで、どの機能が端末向けなのかは、どこで確認できるのでしょうか?あるいは、ブローカーから端末に常に送信されるデータ(変数)のリストや、個別のリクエストで受信する必要のあるデータなどがあるのでは?

 
//|+-------------------------------------------------------------------------------------------------------+
int Accounting_Orders()
{
int Counter_Orders = 0;
//|+-------------------------------------------------------------------------------------------------------+
ArrayCopy (Massif_Old_Orders, Massif_New_Orders);
Counter_Orders = 0;
ArrayInitialize (Massif_New_Orders,0);
ArrayInitialize (Massif_All_Orders,0);
//|+-------------------------------------------------------------------------------------------------------+
for(int q = 0; q < OrdersTotal(); q++)
{
if( (OrderSelect(q,SELECT_BY_POS)==true) && (OrderSymbol() == Symbol()) )
{
Counter_Orders++;
Massif_New_Orders[Counter_Orders][1] = OrderOpenPrice();
Massif_New_Orders[Counter_Orders][2] = OrderStopLoss();
Massif_New_Orders[Counter_Orders][3] = OrderTakeProfit();
Massif_New_Orders[Counter_Orders][4] = OrderTicket();
Massif_New_Orders[Counter_Orders][5] = OrderLots();
Massif_All_Orders[OrderType()]++;
Massif_New_Orders[Counter_Orders][6] = OrderType();
Massif_New_Orders[Counter_Orders][7] = OrderMagicNumber();
//|+-------------------------------------------------------------------------------------------------------+
if ( OrderComment() == "" )
{
Massif_New_Orders[Counter_Orders][8] = Order_False;   
}
else
{
Massif_New_Orders[Counter_Orders][8] = Order_True;
}
//|+-------------------------------------------------------------------------------------------------------+
Massif_New_Order[0][0] = Counter_Orders;
//|+-------------------------------------------------------------------------------------------------------+
return;
  }
//|+-------------------------------------------------------------------------------------------------------+
受注計上機能、具体的にはそれを構成する配列はどのように使えばよいのでしょうか?

オプション1.
コード内の特定された場所に特定の配列を挿入する必要があるのでしょう。
例えば、こんな感じです。
OrderSend(Massif_New_Orders[Counter_Orders][4], // Уникальный номер 1.
Massif_New_Orders[Counter_Orders][6],           // Тип .
Massif_New_Orders[Counter_Orders][5],           // Кол - во лотов, при торге.
Massif_New_Orders[Counter_Orders][1],           // Тип части бара, на котором происходит открытие позиции.
10,                                             // Допустимое проскальзование.
Massif_New_Orders[Counter_Orders][2],           // Остановка потерь.
Massif_New_Orders[Counter_Orders][3],           // Принятие прибыли. 
Massif_New_Orders[Counter_Orders][7]);          // Уникальный номер 2.
そして、私の心はもう一つの疑問を投げかける。

- 配列を使う価値は全くないのでしょうか?-.
配列が単一型変数に使われるのはわかるが、順序保持関数は単一型変数の「匂いがしない」のだ。

オプション2.
すでに割り当てられている配列関数は、蓄積された注文(オーダー)データを使用する必要がある場合に呼び出されるのだと思います。
例えば、こんな感じです。

if(Old_Sistem = 12475)                         //Если расчет объема торга надо вести по объему торга предыдущих ордеров,
{                                              //то 
O_Lots = Massif_New_Orders[Counter_Orders][5]; //вызывается значение лота предыдущего ордера из накопленной информации о ордерах.
}                                              //Конец.
 
yan720:



ありがとうございます。この情報は、パケットごとに端末に送信されるようですが...。

また、どの機能がブローカー向けで、どの機能が端末向けなのかは、どこで確認できるのでしょうか?あるいは、ブローカーから端末に常に送信されるデータ(変数)のリストや、個別のリクエストで受信する必要のあるデータもあるのでは?

トレーディング機能。彼らだけがトレードサーバーに特別にリクエストを送り、サーバーからレスポンスを受け取ります。
 
Link_x:
受注計上機能、具体的にはそれを構成する配列はどのように使えばよいのでしょうか?

オプション1.
コード内の特定された場所に特定の配列を挿入する必要があるのでしょう。
例えば、こんな感じです。
そして、私の心はもう一つの疑問を投げかける。

- 配列を使う価値は全くないのでしょうか?-.
配列が単一型変数に使われるのはわかるが、順序保持関数は単一型変数の「匂いがしない」のだ。

オプション2.
すでに割り当てられている配列関数は、蓄積された注文(オーダー)データを使用する必要がある場合に呼び出されるのだと思います。
例えば、こんな感じです。

もったいないと思っています。オープンオーダーとクローズドオーダーの情報はすべてターミナルに保存されます。なぜ配列で重複させるのか?端末からの取り出し方を覚えることが重要です。
 
yan720:

ありがとうございます。この情報は、パケットごとに端末に送信されているようですが...。

Equityがずっと伝わっているわけではないのです。

それは、あなたのオープンポジションに基づいて、端末自体が計算される可能性が高いです。

また、どの機能がブローカー向けで、どの機能が端末向けなのかは、どこで確認できるのでしょうか?

どこにもない、常識的に考えて。

 
khorosh:
もったいないと思っています。オープンオーダーとクローズドオーダーの情報はすべてターミナルに保存されます。なぜ配列で重複させるのか?重要なのは、端末から抽出する方法を学ぶことです。 。


このような情報は、おそらく特定のコマンドで抽出されているのだろう。
OrderSend でしょうか?
 
Link_x:

このような情報は、おそらく特定のコマンドによって取得されるのだろう。 OrderSendでしょうか?

これは、サーバーにトレードのリクエストを送信して いるのです。
 
Link_x:

このような情報は、おそらく特定のコマンドによって取得されるのだろう。
OrderSendでしょうか?
KimIVの関数について読んでみると、そのほとんどが、オープンまたはクローズしたオーダーに関する何らかの情報を取得するために設計されていることがわかります。