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

 
rigonich:

ワインドアップでMTにサウンドが許可されているかどうか、Sound フォルダにファイルがあるかどうかを確認します。しかし、bstrom市場では、snは目覚まし時計として機能 するのです。


いや、まあ、初心者の私でも、そんなミスはしないんですけどね。:))

他の専門家もナイチンゲールのように歌っている!同じターミナルで。

 
Desead:

ロボットをアンロードするときにグリッドごと削除すればいいのなら、どうすればいいんだろう...こちらも思いつきません :(

は、deinit を呼び出す前に、deinit を呼び出した条件と同じ条件を置いてください。
 
lottamer:


いや、私は初心者ですが、そんなミスはしませんよ。:))

他の専門家がナイチンゲールのように歌っている!同じターミナルで。


また、スクリプトの場合、Expert Advisorの取引権限を 有効にする必要があり、それを配置したウィンドウには、他の動作中のスクリプトやExpert Advisorがないはずです。
 
rigonich:

deinitを呼び出す前に、deinitを呼び出すのと同じ条件でdeinitを配置します。


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

ところで、もうひとつ思うことがあります。

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

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

 
rigonich:

また、スクリプトの場合は、Expert Advisorの取引権限を有効にしておく必要があります。


これはEAです。

もちろんすべてのパーミッションは有効です(他のEAもあります-動作します-同時には動作しません)。

コードに問題があるようです。

 
Desead:

返信ありがとうございました。私はそれらのすべてを必要としない、bylimit と selllimit だけ、そして私はまたそれらを置く、マジシャンはまた同じどこでも存在しています。私はあなたによって与えられたコードを見た、そこに非常に多くのものがあり、私はそれを理解するために座って、一般的に、私は問題を自分で解決できない場合は、私はより徹底的にあなたのスクリプトを解体する必要があります、他の方法はありません、それは削除されず、それです(

あることを考えていたんです。保留中のロボットの削除を一箇所だけに設定しました。ロボットをアンロードすると、deinitに置かれることになります。このセクションには何か時間的な制限があるのでしょうか? 数個の注文を削除するときは問題ないのですが、グリッド全体をアンロードすると、何が起こるのでしょうか。

私のスクリプトは この ライブラリを使用しています。その中の注文を削除する役割を担う関数。

/*int fClose_AllOrders (double& fd_Pribul,         // Возвращаемый профит закрытых ордеров
                        int fi_Type = -1,          // тип закрываемых ордеров: -1 - все; -2 - рыночные; 7 - отложенные или OrderType()
                        int fi_NBars_Life = 0,     // минимальная "жизнь" ордера в барах на fi_Period: 0 - параметр не учитывается
                        int fi_Period = 0,         // Период
                        int fi_OrderProfit = 0)*/  // Идентификатор профитности ордера: > 0 - профитный; < 0 - лоссовый
                                     // Функция закрытия "своих" ордеров по признаку

ライブラリから機能をもぎ取るにはある程度の知識が必要ですが、ライブラリごと使うのは初心者にはかなり許容範囲です。

 
rigonich:

ほーら、注文を削除する問題が解決したようです。別の関数で「必要な」(削除すべき)オーダーの数を計算し、この関数を呼び、次に条件(Total>0)でwhile、次に削除のサイクル for(int i=Total-1 ;i<=0l; i--)、再び、「必要」、指定レベルに達したときにwhileから 抜ける削除試行のカウンターの関数にしました。こうすることで、すべてが削除されます。
ループを使用する場合、常に注意しなければならないのは、反復回数と終了条件をEAが取引を禁止されているときに置くことです。
 
TarasBY:
ループを使用する際は常に注意が必要です。EAの取引を禁止する際は、反復カウンタと終了条件を設定します。


ご指摘ありがとうございます。取引不可の時の終了条件を忘れていました。
 
Desead:

くそっ、それは私の問題だ。 ロボットをアンロードするときにグリッド全体を削除すればいいのなら、どうやって回避すればいいのだろう...思いつかないよ :(

ライブラリ 経由でdeinit()にスクリプトをロードしてチャート化することができます。

 // 7.9. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hwndChart,    // Системный дескриптор окна графика, куда загружается скрипт.
                        string szNameScript, // Имя загружаемого скрипта.
                        int    bOK);         // Подтверждение запуска скрипта, при наличии диалогового окна свойств скрипта. Скрипт может не иметь окна свойств!
                                             // При использовании функции для загрузки скрипта из скрипта на текущем графике параметр не работает из-за
                                             // невозможности одновременной работы двух скриптов на одном графике.
                                             // TRUE - автонажатие на кнопку "OK" разрешено, FALSE - автонажатие на кнопку "OK" запрещено.

を、全オーダー削除機能で削除する。

P.S.いくつかのまたは他のコストとエネルギーで、トレーダーの任意のエキゾチックな欲望を解決することができますが、あなたは時々、この "エキゾチック "を必要とするかどうか...:)))

 

えっと...オープンオーダーのチェックの条件って、どうしてこう書けなかったんだろう。

ifOrdersTotal()> 0

すべてがクリアでわかりやすい...だろう

この条件をどう書けばいいのか、1時間も悩んでしまいました...。