[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 603

 

こちらをご覧ください https://forum.mql4.com/ru/38949/page2#434212


ExistPosByPrice()関数です。

この関数は、指定された建値で ポジションが存在するかどうかのフラグを返します。

Existフラグとは 何ですか?

 
hoz:

ですから、あなたが示している関数が正しく書かれているかどうかを尋ねてください。そうでなければ、あるものについて尋ねて、別のものを示していることになります。
 
lottamer:

こちらをご覧ください https://forum.mql4.com/ru/38949/page2#434212


ExistPosByPrice()関数です。

この関数は、指定された建値でポジションが存在するかどうかのフラグを返します。

Existフラグとは 何ですか?


フラグとは、通常bool型の変数で、チェックされる条件(ここでは、指定された 値のポジションがあること)の真偽によって状態が設定されるものです。
 
sergeev:

は、この==記号の時間が1秒しか存在しないようにしない。

という記号を付けるのが正しいです。

または、現在と以前の2つの時間変数の制御を通過します。

しかし一方で、注文の開始条件という論理的な操作で、秒を正の結果に結びつけようとする論理的な誤りがあるのです。

これは正しくありません。つまり、time関数がfalseを返すので、次のティックでは注文を開こうとしないのです。


大まかなイメージはつかめました。出てきたのはこんな感じです。

bool GetTimeToInput()

{

  if(TimeCurrent() >= iTime(Symbol(),1440,0) && TimeCurrent() <= iTime(Symbol(),1440,0) + N)

  {

    return(true);

  }

  else

    

  return(false);

} 

Nは日足バーが開いてから何分後か。今のところ、取得方法が分からないので、純粋な変数を書いています。正しいようです。

セルゲイ

成功した操作の記憶と時間を結びつけるのです。

を考える。

しかし、「成功した操作の保存を時間に拘束する」というのはどういうことなのか、はっきりさせたいと思います。よくわからなかったのです。

 
hoz:


大まかなイメージはつかめました。出てきたのはこんな感じです。

N は日足バーが開いてからの経過分数です。今までは取得方法がわからなかったので、純粋に変数で書きました。正しいようです。

セルゲイエフ

しかし、成功した操作の記憶と時間をどう結びつけるか、もっと明確に説明したい。よくわからないんです。


大切なのは時間そのものではなく、ある期間内に何かが行われたかどうか、これを確認することです。

追伸:また、Nを決定する必要はなく、必要な動作(注文の取り付け)が行われるまで、if(TimeCurrent() >= iTime(Symbol(),1440,0) )をチェックすればよいのだそうです。

 
rigonich:

フラグとは、通常bool型の変数で、条件が真であるかどうか(ここでは、指定された建値のポジションがあるかどうか)に応じて設定されるものである。

なるほど、INDEXという位置づけは何なのか、ティッカーでもなく、タイプでもない...。
 
lottamer:

オーダーインデックスって何? ティッカーでもないし、タイプでもないし...。


端末に存在する注文のデータが格納されている配列の中で、注文の位置を決定するためのインデックスである。

つまり、下線部(SELECT_BY_POS の下) boolOrderSelect(int index, int select, int pool=MODE_TRADES)

 
rigonich:


端末に存在する注文のデータが格納されている配列の中で、注文の位置を定義するインデックスです。

つまり、下線部(SELECT_BY_POS付き) bool OrderSelect(int index, int select, int pool=MODE_TRADES)



しかし、「過去2回のトレードが負けだったら......」という条件をコーディングする必要がある場合、実際にどのように適用するのでしょうか???
 
lottamer:

が、「過去2回のトレードが負けだったら......」という条件をコーディングする必要がある場合、実際にはどのように使うのでしょうか???


実際には、注文を扱うすべてのオペで使用されます。 まず、注文を選択してから、その注文に対して何かを行う必要があります (注文情報の表示、サーバーに取引注文を 送信して変更または決済)。ターミナルで注文を選択するには、チケット (特定の注文に対してサーバー上で割り当てられた変更しない番号) またはターミナルで注文が格納されている注文番号 (インデックス) によって行う 2 種類の方法があります。この数値は、注文の開始、設定、終了、削除の内容や数によって、1ティックごとに変化する可能性があります。

注文を処理するためには、注文の評価サイクルを設定する必要があります。

 
rigonich:


重要なのは時間そのものではなく、一定期間内に何かが行われたかどうか、そこをチェックすることです。

追伸:また、Nを定義する必要はなく、欲しいアクション(注文の設定)が行われるまでif(TimeCurrent() >= iTime(Symbol(),1440,0) )をチェックすればいいのです。


しかし、このように設定すると

if(TimeCurrent() >= iTime(Symbol(),1440,0)

この方法では、バーが開いてからずっとシグナルが有効になり、.無限大に。なぜ必要なのか?パックではなく、バーのオープニングで1オーダーを開けることがメインです。