MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1780 1...177317741775177617771778177917801781178217831784178517861787...1953 新しいコメント Mihail Matkovskij 2021.12.02 19:48 #17791 законопослушный гражданин #:私が見る限りでは、このような違いがあります。 ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、この機能では、最新の終値の時刻を持つ注文を検索します。また、注文を削除したり、閉じたりする場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。 Alexey Viktorov 2021.12.02 21:56 #17792 законопослушный гражданин #:を見る限り、以下のような違いがあります。 この場合、差はありません。OrersTotalから0へのサイクルは、ポジションのクローズまたはオーダーの削除の場合のみ必須です。それ以外の場合はお好み次第です。 Artyom Trishkin 2021.12.02 21:58 #17793 Mihail Matkovskij #:ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、閉店時間が一番遅いオーダーを検索する機能です。また、注文を削除したり、閉じたりしたい場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。 もし、この関数が最新の終値を持つ注文を検索するのであれば、履歴の最初からではなく、最後から、つまり現在の時刻から過去の時刻までの検索が明らかに速くなります。 Mihail Matkovskij 2021.12.02 22:19 #17794 Artyom Trishkin #:もし、この関数が最新の終了時刻の注文を探すのであれば、履歴の先頭からではなく、最後から、つまり現在の時刻から過去の時刻までの検索が明らかに速くなるはずです。 逆に、この関数は最新の終値を持つ注文をより速く見つけ、サイクルの終わりまでそれを変更せず、その結果を返します。順方向では、すべての注文を検索し、最後の注文の一つを返します。違いは、ループを通過するたびに変数が上書きされることです。そう、違いがあるのです。しかし、あまり意味はないのではないかと思います。順方向より逆方向のループの方が良いですが。にもかかわらず、その機能が一方的に働いてしまうのです。 Maksim Mikhailov 2021.12.03 08:54 #17795 皆さんこんにちは。プログラム上でチャートウィンドウを切り替える、つまり、プログラム内から任意のチャートをアクティブにする方法はありますか? Alexey Viktorov 2021.12.03 09:10 #17796 Maksim Mihajlov #: 皆さんこんにちは。プログラム上でチャートウィンドウを切り替える、つまりプログラムから任意のチャートをアクティブにする方法はありますか? チェックする チャートトップ チャートを他のすべてのチャートの上に表示する ブール Maksim Mikhailov 2021.12.03 09:11 #17797 Alexey Viktorov #:チェックする チャートトップ チャートを他のすべてのチャートの上に表示する ブール ありがとうございました。 законопослушный гражданин 2021.12.03 10:31 #17798 Mihail Matkovskij #:ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、閉店時間が一番遅いオーダーを検索する機能です。また、注文を削除したり、閉じたりしたい場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。 とにかく、注文ロットカウント以外は全く同じEAを2つ作ってみました!!その結果がこちらです。 動作しない(例:SELLの代わりにBAYを開けない) void OnTick() { // Получим значение индикатора dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0. // Если нет открытых ордеров, то входим в условие if(CountOrders()==0) { //Если появился сигнал на покупку, то откроем ордер на покупку if(bSignalBuy()) { if(GetLotSize()>LotControl) vOrderOpenSell(); else vOrderOpenBuy(); } // Если появился сигнал на продажу, то откроем ордер на продажу if(bSignalSell()) { if(GetLotSize()>LotControl) vOrderOpenBuy(); else vOrderOpenSell(); } } } ,,, double GetLotSize() { double Ls=0; for(int pos=OrdersTotal()-1;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) {Ls=OrderLots();} } } } return Ls; } WORKING (「SELL」の代わりに「 BAY」を開くなど。 void OnTick() { // Получим значение индикатора dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0. // Если нет открытых ордеров, то входим в условие if(CountOrders()==0) { //Если появился сигнал на покупку, то откроем ордер на покупку if(bSignalBuy()) { if(GetLotSize()>LotControl) vOrderOpenSell(); else vOrderOpenBuy(); } // Если появился сигнал на продажу, то откроем ордер на продажу if(bSignalSell()) { if(GetLotSize()>LotControl) vOrderOpenBuy(); else vOrderOpenSell(); } } } ... double GetLotSize() { double Ls=0; datetime t=0; int i=OrdersHistoryTotal(); for(int pos=0; pos<i; pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();} } } } } return Ls; } Tretyakov Rostyslav 2021.12.03 10:45 #17799 законопослушный гражданин #:とにかく、注文ロットカウントを除いて、全く同じEAを2つ作ってみました!その結果がこちらです。動作しない(例:SELLの代わりにBAYを開けない)WORKING(例:SELLではなくBAYを開く) もう一度、違いを強調します。 1 変形 double GetLotSize() { double Ls=0; for(int pos=OrdersTotal()-1;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) 2 変形 double GetLotSize() { double Ls=0; datetime t=0; int i=OrdersHistoryTotal(); for(int pos=0; pos<i; pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) Mihail Matkovskij 2021.12.03 11:00 #17800 законопослушный гражданин #:とにかく、注文ロットカウントを除いて、全く同じEAを2つ作ってみました!その結果がこちらです。動作しない(例:SELLの代わりにBAYを開けない)WORKING (「SELL」の代わりに「 BAY」を開くなど。 OrdersTotal、OrdersHistoryTotalを やみくもにコピーするのではなく、何をコーディングしているのか理解するようにしましょう。 オーダーセレクト pool=MODE_TRADES[in] 選択するデータのソース。selectパラメータがSELECT_BY_POSのときに使用します。以下の値のいずれかを指定することができる。MODE_TRADES(デフォルト) - 開いている注文と保留中の注文の中から選択されます。 MODE_HISTORY - 閉じられた注文と削除された注文の中から選択されます。 OrdersTotal - Торговые функции - Справочник MQL4 docs.mql4.com OrdersTotal - Торговые функции - Справочник MQL4 1...177317741775177617771778177917801781178217831784178517861787...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私が見る限りでは、このような違いがあります。
ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、この機能では、最新の終値の時刻を持つ注文を検索します。また、注文を削除したり、閉じたりする場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。
を見る限り、以下のような違いがあります。
この場合、差はありません。OrersTotalから0へのサイクルは、ポジションのクローズまたはオーダーの削除の場合のみ必須です。それ以外の場合はお好み次第です。
ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、閉店時間が一番遅いオーダーを検索する機能です。また、注文を削除したり、閉じたりしたい場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。
もし、この関数が最新の終値を持つ注文を検索するのであれば、履歴の最初からではなく、最後から、つまり現在の時刻から過去の時刻までの検索が明らかに速くなります。
もし、この関数が最新の終了時刻の注文を探すのであれば、履歴の先頭からではなく、最後から、つまり現在の時刻から過去の時刻までの検索が明らかに速くなるはずです。
逆に、この関数は最新の終値を持つ注文をより速く見つけ、サイクルの終わりまでそれを変更せず、その結果を返します。順方向では、すべての注文を検索し、最後の注文の一つを返します。違いは、ループを通過するたびに変数が上書きされることです。そう、違いがあるのです。しかし、あまり意味はないのではないかと思います。順方向より逆方向のループの方が良いですが。にもかかわらず、その機能が一方的に働いてしまうのです。
皆さんこんにちは。プログラム上でチャートウィンドウを切り替える、つまりプログラムから任意のチャートをアクティブにする方法はありますか?
チェックする
チャートを他のすべてのチャートの上に表示する
ブール
チェックする
チャートを他のすべてのチャートの上に表示する
ブール
ありがとうございました。
ストーリーは、最初からでも最後からでもOKです。違いはありません。とにかく、閉店時間が一番遅いオーダーを検索する機能です。また、注文を削除したり、閉じたりしたい場合は、リストの最後から検索する必要があります。そうでない場合は、ループはオーダーをスキップします。
とにかく、注文ロットカウント以外は全く同じEAを2つ作ってみました!!その結果がこちらです。
動作しない(例:SELLの代わりにBAYを開けない)
WORKING (「SELL」の代わりに「 BAY」を開くなど。
とにかく、注文ロットカウントを除いて、全く同じEAを2つ作ってみました!その結果がこちらです。
動作しない(例:SELLの代わりにBAYを開けない)
WORKING(例:SELLではなくBAYを開く)
もう一度、違いを強調します。
1 変形
2 変形
とにかく、注文ロットカウントを除いて、全く同じEAを2つ作ってみました!その結果がこちらです。
動作しない(例:SELLの代わりにBAYを開けない)
WORKING (「SELL」の代わりに「 BAY」を開くなど。
OrdersTotal、OrdersHistoryTotalを やみくもにコピーするのではなく、何をコーディングしているのか理解するようにしましょう。
オーダーセレクト
pool=MODE_TRADES
[in] 選択するデータのソース。selectパラメータがSELECT_BY_POSのときに使用します。以下の値のいずれかを指定することができる。
MODE_TRADES(デフォルト) - 開いている注文と保留中の注文の中から選択されます。MODE_HISTORY - 閉じられた注文と削除された注文の中から選択されます。