Обращение по начальной дате и количеству требуемых элементов
intCopyRates(
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // периодdatetime start_time, // с какой датыint count, // сколько копируемMqlRates rates_array[] // массив, куда будут скопированы данные
);
DBL_MAXが 登場します。
ハンディキャップがなくなったのに、なぜハンディキャップのあるナントカは戻ってこないのでしょうか?
1回目のプリントは10、2回目のプリントはtrue、3回目のプリントは再び10です。1分間に1枚のスリップを貼る - それでも10枚。
1(INVALID_HANDLE)にすべきと思います。私の考え方が間違っているのでしょうか?
ハンディキャップがなくなったのに、なぜハンディキャップのあるナントカは戻ってこないのでしょうか?
1回目のプリントは10、2回目のプリントはtrue、3回目のプリントは再び10です。1分間に1枚のスリップを貼る - それでも10枚。
1(INVALID_HANDLE)にすべきと思います。私の考え方が間違っているのでしょうか?
削除されたインジケータは物理的にすぐには削除されませんが、同じプログラムまたは別のプログラムが再び開く場合に備えて、一時停止(おそらく数分)します(キャッシュ・オプション)。
ほとんどの場合、これは便利なことです。 問題は、サイクルが大きな指標のセットのバッファを読み取る場合にのみ発生します(一度にすべての指標をメモリに収めることができないほど大きなもの)。
// この場合のみ、プログラム内でインジケータを解放することに意味があります。
// IndicatorRelease()関数の他のすべての使用方法は「人種的に間違っている」、なぜなら指標はいずれにせよ作業の終了時に解放されるからです。
したがって、パラドックス:キャッシュはすべてのコーシャユースケースを完全に殺してしまうので、この機能は役に立たないのです。
この場合、レナートはかつて「瞬間離脱」のバリエーションを作ると声を上げたことがあるが、どうやら今も多忙なようだ。;)
--
これが答えの最初の部分のようなものです(これがないと、2番目の部分が理解できません)。
さて、INVALID_HANDLEについて です。私の見るところ、ダイナミック・オブジェクトを解放する関数やdelete演算子は、ポインタ自体にINVALID_HANDLEという 値を割り当てず、ハンドルが指すオブジェクトを削除するだけであるようです。メモリ割り当て関数(new 演算子も同様)だけが、失敗した場合にポインタにINVALID_HANDLE 値を強制的に割り当てるので、ポインタの有効性をチェックする正しい方法はCheckPointer() 関数で、文字通りオブジェクトを探してハンドルのシステムテーブルを調べ、オブジェクトが見つかったらハンドルタイプを、見つからなかったら 0 を返すのだそうです。
ポインタ(ハンドル)を扱う理屈が少しはわかっていただけたでしょうか。お手本のような結果ですね。IndicatorRelease() に渡した後、ポインタ変数にINVALID_HANDLE の値を取得することを望む不具合は言うまでもありません。
MetaTrader 5のOrders, Positions and Tradesという 記事では、「各取引は1つの特定の注文に基づいているが、1つの注文は複数の取引を生成できる」という例を挙げています。例えば、10ロットの買い注文は、部分約定を伴う複数の連続した取引によって実行 することができます」。私の理解では、例えば10ロットのポジションを開きたい場合、いくつかの取引が履歴に表示される可能性があります。私の戦略では、1と2のポジションは同じ方向で、私のExpert Advisor(MT4)は1.0ロットで開き、次に3、2.0ロットとします。MT5では、履歴の最初のポジションを開くと、例えば2つ以上の取引が表示されることがあります。履歴に2つ以上の取引が表示される場合があります。2つ目のポジションをオープンしたい場合、Expert Advisorは履歴をスクロールして、3つ目のポジションになることを発見します。そして、間違ったロットを開くことになる。これはちょっと困る。
もしかしたら、この問題を解決する方法を知っている人がいるかもしれないし、リンクを教えてくれるかもしれない。
ありがとうございます、ちょうどいい感じです。
// nelp by nelp for dummies - それが記事で必要とされていることです。
M5(画面上の現在のもの)とH1など、2つの異なるタイムフレームを使用するインジケータを作成 しようとしています。これらの異なる時間枠の間で価格を同期させるにはどうしたらよいでしょうか。例えば、M5でインジケータの最終値を計算する際に、同じ時刻のH1から自動的に価格を汲み上げたい(つまり、ArraySetAsSeries後の両タイムフレームのゼロバーが、OnTickのように現在の最終時刻に対応するが、画面上の最新のバーではない)。 そのような可能性がなく、バー時刻を手動でチェックすべきならば、onTickのように同期関数をインディケータ用に追加すべきです。
テスターでテストしてみました〜。最後に計算した値が画面に保存されないのはなぜですか?
M5(画面上の現在のもの)とH1など、2つの異なるタイムフレームを使用するインジケータを作成 しようとしています。これらの異なる時間枠の間で価格を同期させるにはどうしたらよいでしょうか。例えば、M5でインジケータの最終値を計算する際に、同じ時刻のH1から自動的に価格を汲み上げたい(つまり、ArraySetAsSeries後の両タイムフレームのゼロバーが、OnTickのように現在の最終時刻に対応するが、画面上の最新のバーではない)。 そのような可能性がなく、バー時刻を手動でチェックすべきならば、onTickのように同期関数をインディケータ用に追加すべきです。
テスターでテストしてみました〜。以前に計算した値がインジケーターに保存されないのはなぜですか?
関数CopyXXXX()のオーバーロードのいずれかを使用します。
デバッグの際には、どちらの方向にデータがコピーされているか(1個以上コピーされている場合)確認してください。
CopyXXXX() のオーバーロードのいずれかを使用します。
デバッグの際には、どちらの方向にデータがコピーされているか(1個以上コピーされている場合)確認してください。
こんにちは。
現在の分足チャートに前日の最大値と最小値を描画するインジケーターのコードを教えていただけませんでしょうか?
SPS!
お久しぶりです =)。
と言ってみましょう。ある時期があるんです。例えばD'03.07.2005 13:48:12'のように。
この時間帯を含む(ある期間の)バーの時刻を調べるにはどうしたらよいですか。
みたいな機能があるといいんですけどね。
datetime УзнатьВремяБараПоВремениПользователя (datetime времяПользователя, ENUM_TIMEFRAMES периодБаров)
...そして、その時に取引がなければマイナス値を返すと。
まあ、吐き出してみてください、そんな機能があるんですか?