В таблицах указаны расчётные значения, ограничивающие проведение торговых операций при открытии, закрытии, установке, удалении и модификации ордеров. Для получения значения минимальной дистанции StopLevel и дистанции заморозки FreezeLevel необходимо вызвать функцию MarketInfo(). Требования. Правильные цены, используемые при осуществлении...
次の小節を比較し、シーケンスが壊れていたら、フラグをリセットし、いくつ正解だったかを書き込んで、ループを進みます。
そのバーが強気で、次のバーが弱気であることが分かれば十分で、次のバーは、前のバーと同じであれば、その値を書き込んで、フラッグをリセットするのです。といった具合に、最後まで
しかし、最初の1つは強気になれないかもしれない。
が、1枚目は牛じゃないかもしれないけど、仕方ない。
ここでは、全く正しくないが、常に弱気のろうそくからカウントするバリアントは、次のとおりです。
ここでは、全く正しくないが、常に弱気のろうそくからカウントするバリアントは、次のとおりです。
ありがとうございます。この数字を二乗して1を足すと、正しい結果になる。
if(i%2==0)でチェックされている?が、1枚目はまさかのブルではないかもしれません。
同じローソク足を見つけて、連鎖の方向を変える例を紹介します。
これで、連鎖が続くところでは、連鎖しているキャンドルの数を数えてリストに保存し、新しい連鎖に変わるところでは、新たにカウントを開始することができるようになりました。
各チェーンのキャンドルの本数をソートして保存することができます。そして、リストをソートすることで、最大 配列と最小配列を求めることができる。
ありがとうございます。得られた数を二乗して1を足せば正解となる。
if(i%2==0)をチェックしていることでしょうか。iが2の倍数の場合。
iを2で割った余り である
ここでは、コンパイル時にローカル変数のサイズが大きすぎる(512kb以上)ことが原因です。
どこを見て、何をすればいいのか?関数内に文字列配列CArrayStringがあるので、エラーになるのでは?
Add()メソッドで注入した後、Clear() とShutdown() を再度行っています。そして、Add()メソッドを使って新しいデータで再度埋めています。この場合、配列は再び0項目で埋め尽くされるのでしょうか?
コンパイル段階ですでにメモリを占有しているクラスから、そのようなメンバーを削除しなければならない。このデータは、常に非常に小さいスタック・メモリに割り当てられる。この問題を解決するためには、多くのメモリを占有するクラスメンバに対して動的にメモリを割り当てることが必要です。
例えば、クラスメンバがある場合。
と置き換える必要があります。
コンパイル段階ですでにメモリを占有しているメンバをクラスから削除する必要があります。このデータは、常に非常に小さいスタック・メモリに置かれることになる。この問題を解決するためには、多くのメモリを占有するクラスメンバに対して動的にメモリを割り当てることが必要です。
例えば、クラスメンバがある場合。
であれば、それに置き換える必要があります。
ありがとうございます。どうにかして、各関数のパラメータからクラスを削除することで、この問題を解決しました。一般に、このオブジェクトはすべてのメソッドに対して一度だけ初期化することが可能であった。
CArrayクラス、より具体的にはCArrayObjについて、もう一つ質問があります。Delete()メソッドはあるが、配列内の要素を移動させないのか?つまり、Delete(18)を削除すると、この位置の項目が削除され、後でこのインデックスで項目を照会しようとすると、無効なポインタが表示されるのです。この場合、18番目の要素が削除後に19番目の要素になるように、要素を削除して移動するような方法はありますか?
ありがとうございます。どうにかして、各関数のパラメータからクラスを削除することで、この問題を解決しました。一般に、このオブジェクトはすべてのメソッドに対して一度だけ初期化することが可能であった。
CArrayクラス、より具体的にはCArrayObjについて、もう一つ質問があります。Delete()メソッドはあるが、配列の要素を移動させないのか?つまり、Delete(18)を削除すると、この位置の項目が削除され、後でこのインデックスで項目を照会しようとすると、無効なポインタが表示されるのです。項目を削除して移動させ、削除後の18番目の項目が19番目の項目になるような方法はないでしょうか?
標準ライブラリを扱ったことはありませんが、ヘルプによると、Delete()メソッドは物理的に要素を削除し、配列のサイズを変更する必要があるようです。例外:メモリ管理機構が無効の場合。デフォルトでは、この機構は有効になっています。FreeModeメソッドは、メモリ管理フラグの状態を確認するために使用されます。
私としては、CArrayクラスに特別な利便性や優位性を見出せないので、MQLでは自分で配列を使い(C++ではベクトルやリストを使うが)、メモリ管理も自分で行うことをお勧めしたい。私はこの方法を使って、自分の配列の項目を割と早く削除しています。
唯一の欠点は、配列の項目の順序を保持しないことです。つまり、順序付き(ソート済み)配列を除くすべての配列に適用できる。
こんにちは、MT4で保留中の買い注文と 売り注文を 現在の価格から一定のpips数で一度に出すことができるスクリプトはどこにあるか教えてください、つまり手動で数える必要はなく、多分注文ウィンドウに入ることもないでしょう?注文画面に行きたくない。 ありがとうございました。
PS: スクリプトを使ったことがないので、何か間違ったことを聞いているのかもしれません。
"StopLossまたはTakeProfitの値がFreezeLevelパラメータに違反する場合、成行注文を閉じることはできません。" という点について教えてください。
これは文字通り、TakeProfitまたはStopLossがFreezeLevelに満たない場合、成行注文を閉じることができないことを意味しますか?オープンマーケットオーダーがStopLevelまたはFreezeLevelルールに違反するストップを持つことができるのか、よく理解できないのですが?結局、間違ったストップが設定されると、サーバーはエラーを出すだけで、ストップは設定されないのです。
また、ブローカーがFreezeLevelを使用している場合、成行注文を閉じる際に他に知っておくべきことがあれば教えてください。