[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 933

 
Dimka-novitsek:

ここにあるのは


アドバイザーが活躍します。トレードを開始する
 
gheka:

私はまだ困っていて、理解できていません。ユニークなシーケンス番号がどこから来るのか、例ではすべてが異なっています。

を作成するのは私ではないのですが、例えば

回答を待たずにPMから質問を削除されたので-ここに投げます。

このように分解してみましょう。

インデックス -

2番目のパラメータにより、オーダー位置またはオーダー番号。
(注文の位置や番号、どこから来るのか??)

"第2パラメータに依存" - "select "に依存するということでしょうか?

注文の位置は、端末の注文の配列の中の位置です。まさに、ループの中で探しているポジションです。

オーダー検索

for (int index=0; index<OrdersTotal(); index++) // Цикл по терминалу. В кач-ве переменной цикла будет index для наглядности
    {
       if (OrderSelect(index, SELECT_BY_POS) && OrderMagicNumber()==Magic) // Если выбран ордер и магик равен магику советника
           {
                if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
                   {
                       //............... Тут код обработки выбранного орд
                   }
           }
    }

SELECT_BY_POSを検索する場合、次のパラメータはデフォルトでMODE_TRADESになっているので、省略することが可能です。Expert Advisor は、まだ決済されていない、つまり市場にあるポジションを検索します。

もし、すでに決済された注文を検索する必要がある場合は、SELECT_BY_POS の後に MODE_HISTORY というパラメータを追加する必要があります。その後、Expert Advisor はクローズしたポジションと削除された注文またはトリガーされた注文のリストのみを検索します。

(私の記憶違いでなければ、これらはすでに設定されているオーダーですよね。"0 "は一番上、
"1 "はリストの2番目のもの、といった具合です。)。

まさにこれが、端末のオーダーの配列におけるオーダーの位置、いわばそのインデックスであり、まさにインデックス
...そして、配列の0セルから順番に配置されていますが、順番の番号は1から始まっています。つまり、1次が配列の0セルに、2次が1セルに、3次が2セルに配置されている・・・。

さて、チケットの話です。チケットという注文の固有番号は、証券会社から割り当てられます。この数字によって、私たちはまさにこの順番や位置を明確に特定することができます。ただし、いくつか留保事項があります。このチケットは、EAのどこか(変数や配列)に保存しておくと、どの順番でこのチケットが必要なのかがよくわかるようになります。そのために、私は自作のEAのオーダーブック機能を使い、標準機能で取得できる注文データだけでなく、例えばフィボレベルなどを格納し、ポジションを持った直後に計算してオーダーブックに入力するようにしています。それから、オープンタイムとテイクアウェイで簡単にポジションを選び、オーダー配列に保存したこのポジションのフィボレベルに従ってストップレベルを移動させます・・・。そこから必要な順番のチケットを入手し、後で標準機能で使うこともできますね。

   if (OrderSelect(Ticket, SELECT_BY_TICKET) && OrderCloseTime()==0) // Если выбран ордер по тикету и время его закрытия равно нулю
      {
         if (OrderTipe()==OP_BUY)                                   // Если нам нужен ордер Бай
            {
               //............... Тут код обработки выбранного ордера
            }
      }

ここでは、注文が終了した時刻をゼロと比較する必要がある。なぜなら、チケットに対する選択時に、MODE_TRADESとMODE_HISTORYは無視されて使用されず、注文のクローズ時刻を見て、クローズしているかどうかを判断して、オープンポジションのリストから選択されるからです。まだ市場にある場合は、その終了時刻もゼロになります。
もし、クローズした注文のデータを見たい場合、チケットで選択しなければならない場合は、クローズ時間をゼロと比較し、ゼロであれば、その注文はすでにクローズされていることになります。

溜まり -

選考のためのデータの出所。select パラメータがSELECT_BY_POSと等しい場合に使用します。以下の値のいずれかとする。
MODE_TRADES (default) - order is selected among open andpending orders,
these are current orders


MODE_HISTORY - order is selected among closed and deleted orders.

and this is from list of completed orders, like from log list, right'.

その通りです。

double OrderProfit() )
しかし、最後の注文とすべての注文のどちらを選ぶのでしょうか?

まだ決済されていない注文に対して、現在の利益を返します。

すでに注文が終了している場合は、この注文の損益を返します。1、選択した。

スワップや手数料などを考慮せずに...それらを考慮するために、独自の関数を作成する必要があります。

=============================================================================

ぜひとも解明してほしい.:)
 

アドバイザーが活躍します。オープニングトレードです。

ありがとうございます!! 取引のプラットフォームが病気であることを知ること、らしいです。

 
Renown:
指数移動平均のボラティリティ(ここではHigh[iHighest(NULL, 0, MODE_HIGH, 30, 1)] - Low[iLowest(NULL, 0, MODE_LOW, 30, 1)] )を平準化するEAが必要である。私が理解する限り、標準のiMAではできないので、そのための関数を書く必要があるのでしょうか?どなたかコードを教えてください。


iMAOnArray

 

皆さんごきげんよう...問題が発生しました...誰か助けてください...?

私はマーチンゲール原理に基づいてEAを取引しています...私はそれにストップロスも 含めることにしました...損失を計算するために私は次の数式を使用しました...

Stopper = AveragePrice - Stoploss * Point; この場合、次のベンドでストッパーが変わるので、私には合わない。例えば100pipsなど、すべてのベンドで固定されるようにしたい・・・つまり、注文開始後にストップが100pipsに設定 される・・・ということだ。例えば、2番目のニーが30ピップス後に開くとすると、ストップは70ピップスで最初のものと同じ場所に到達しなければなりません・・・要するに、私はシリーズ全体に対して固定で不変のストップロスが必要なのです・・・もしあなたがそれを説明することに抵抗がなければ))))、あるいは関数を送っていただければ幸いです。
 

キーが押されたことを検知することに関して質問がありました。押したという事実を追跡し、例えばKが押されたら、何らかのアクションを起こすことが必要です。ここで ( _http://msdn.microsoft.com/en-us/library/ms646293%28v=VS.85%29.aspx ) int GetAsyncKeyState(int vKey) 関数が見つかりましたが、これは原則的に私が必要とするものです...ただし、MetaTraderウィンドウがアクティブな場合にのみ、押したという事実が定義される必要があります。Expert Advisorで以下のような簡単なコードで確認しています。

#define VK_K                            0x4B    // K key 
#import         "user32.dll"
   int GetAsyncKeyState(int vKey);

//-----------------------------------------------------------------------------------------------//
int init()  {

 return(0);
}
//-----------------------------------------------------------------------------------------------//
int deinit()   {

 return(0);
}
int start() {
   if(GetAsyncKeyState(VK_K)==0) Print("K не нажата...");
   else {Alert("НАЖАТА K");}
 return(0);
}
この記事を書きながらアラートを聴いていました :)この問題を克服するために、どうぞよろしくお願いします =)
 

恐るべし!!!友よ、私は迷子だ...。:)

2つのループが入れ子になっています。breakで内側を抜けるとき、外側ループの最初と最後、どちらで抜けるのでしょうか?

アウターブラケットのクロージングブラケットに、それともオープニングブラケットに?

 
artmedia70:

恐るべし!!!友よ、私は迷子だ...。:)

2つのループが入れ子になっています。breakで内側ループから抜けるとき、外側ループの最初と最後、どちらで抜けるのでしょうか?

外付けのクロージングブラケットにですか、それともオープニングブラケットにですか?

コードをスタジオで

実際には、内側のループの閉じ括弧のすぐ後ろにある

 
Necron:

のコードをお願いします。

実際には、内側のループの閉じ括弧のすぐ後ろにある

ありがとうございます。その通りなのですが、外側のループでフラグをチェックするのは、閉じ括弧の前か、それとも開き括弧の後の最初の方か...という疑問が浮かびました。
 

シリーズで固定ストップの作り方知ってる人いないの(((

ここにはプロがたくさんいるから、仕事はそんなに難しくないだろう。