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

 
Desead:


deinitはロボットをチャートから削除したときに呼び出されます - この条件を他の方法で追跡することはできません... ...、おそらく残りの保留をすべて削除する別のスクリプトを書く方が簡単です。

ところで、このテーマについて、もうひとつ思うことがあります。

注文を削除する問題が解決したようです。別の関数で「必要な」(削除すべき)注文の数を計算し、この関数を呼び出し、条件(Total>0)でwhileし、削除のサイクル for(int i=Total-1;i<=0l; i--)、再び「必要な」数を計算与えられたレベルに達したときにwhileから終了して削除の試行のカウンタ です。こうすることで、すべてが削除されます。

このとき、何らかの理由でカウント終了後にいずれかのオーダーが消滅した場合、無限ループが発生する可能性がある。


注文の削除のためのforループの後に毎回注文のカウントを行い、breakで ループを抜けながらカウンタを繰り返し、外部変数に設定した値になったら、終了前にエラー処理を追加して、結果を
アラート(...)
または
プリント( ...)
そして、ある方のアドバイスで、貿易解決のためのチェックを追加することにしました。だから、ここでループする方法はない。


 
Dimka-novitsek:

ごきげんよう!!!きれいな解答が見つからない。ここでは、典型的な 注文設定を紹介します。しかし、私のロボットにパラメータでゼロを与えると、すなわち、ストップとテイクプロフィットがないと、何も動作しません。

ifを設定して、2回目にゼロで注文を入力することもできますが、ちょっと面倒です。

すべてが成熟している-芸術の域に達している!!!;)

そして、真剣に - 今書いたことを考えることを学んでください。STOPPの値がゼロの場合、計算式によるとストップロスとテイクプロフィットは注文の開始価格と 等しくなり、これは不可能です。他に解決策はないのでしょうか(頭を使えるのか? :)?

 
Dimka-novitsek:

ごきげんよう!!!きれいな解答が見つからない。ここでは、典型的な注文設定を紹介します。しかし、私のロボットにパラメータでゼロを与えると、すなわち、ストップとテイクプロフィットがないと、何も動作しません。

ifを設定して、2回目にゼロで注文を入力することもできますが、ちょっと面倒です。



if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; 
 
rigonich:


...あなたは間違っている(その人にチャンスを与えていない):もし男が灰色の物質を刺激しないなら、彼は一生を「ポーチの中で」過ごすだろう。「頼むからヒントをくれ!」。:)))
 
BeerGod:

この方法では、与えられたパラメータに従って注文を選択します。

例)https://www.mql5.com/ru/forum/131859/page3#434221

関数 NumberOfPositions()。

この関数は、現時点でのオープンポジションの数を返します。 カウントするポジションをより正確に選択するには、外部パラメータで指定します。

  • sy- 市場商品の名前。このパラメータが設定されている場合、この関数は指定された楽器の位置のみを考慮します。初期値」は、あらゆる市場商品を意味する。NULLは 現在の楽器を意味します。
  • op- 貿易業務、ポジションタイプ。有効な値:OP_BUYOP_SELL、または-1。初期値の- 1は任意の位置を意味する。
  • mn- 位置の識別子,MagicNumber.デフォルトの値である- 1は、任意の識別子を意味する。


見てくれ

ModifyOrder()関数。https://forum.mql4.com/ru/38949#434195

は、3つのパラメータを入力する必要があります。2つは推測できたが、3つ目はわからなかった。

次の行のUseSoundとは何ですか?

----------------------------------------------------

if (UseSound) PlaySound("alert.wav"); break;

 
lottamer:


働かせよう - 私には1つの立場と1つの道具がある。

でも、うまくいかないんです!

コードにエラーがあると表示される

をこれに加える。

---------------------------

int start()

{

//----

If OrdersTotal()>0

PlaySound("alert.wav")。

//----

return(0)です。

}

-----------------------------

8つのエラーを出す!!!


条件(ifの後のもの)を括弧で囲む
 
TarasBY:

芸術の域に達している!!!;)

そして、真剣に - 今書いたことを考えることを学んでください。STOPPをゼロにすると、ストップロスとテイクプロフィットが注文の建値と同じになり、これは受け入れられません。他に解決策はないのでしょうか(頭を使えるのか? :)?


:)) おっと、「汎欧州」で以下の点も明らかにしてもよろしいでしょうか?

start関数とvoid関数の違いは何ですか?

 
TarasBY:

...あなたは間違っている:もし人が灰白質を刺激しないなら、その人は一生「ポーチの上」で過ごすことになる - 「頼むからヒントをくれ!」。:)))


その通りなのですが、私の人生哲学でもあるのです。面倒でなければ、人を助け、自分が必要なときに助けてもらう。 55歳になると、習慣を変えるのは難しいのです。

追伸:これも私の勉強方法です。

 
lottamer:


:)) おっと、「パナソニック」の次のポイントも明らかにしていいですか?

start関数とvoid関数の違いは何ですか?

まだ誰も達成していない「巨大な頭部を 持つ指を評価する!!!」ということに挑戦したのですね。:)))

は関数で、2番目はその関数が返す値の型です。

P.S. 我慢して読んで ください。

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