Mt4 サポート終了。 - ページ 25 1...181920212223242526272829303132...47 新しいコメント Nikolai Semko 2017.09.10 20:27 #241 Artyom Trishkin:と聞かれるような関数を書けばいいだけです。"M5には新しいバーが ありますか?"と尋ねると、YES/NOの答えが返ってきます。例えば、こんな感じです。ここにあなたの関数IsNewBar()があります。私たちは、タスクをさらに拡張して、それをさらにひねったり回転させたりします。OOPの有用性を示すには、あまり良い例ではないような気がします。 例えば、1つの機能だけを使ったバリエーションを紹介します。int OnInit() { return(INIT_SUCCEEDED); } void OnTick() { IsNewBar(0,false); // режим сбора информации if(IsNewBar()) Print("Пришел новый бар текущего ТФ"); // режим считывания информации if(IsNewBar(PERIOD_H4)) Print("Пришел новый бар H4"); // режим считывания информации if(IsNewBar(PERIOD_D1)) Print("Пришел новый бар D1"); // режим считывания информации } bool IsNewBar(ENUM_TIMEFRAMES tf=PERIOD_CURRENT,bool out=true) { static const ENUM_TIMEFRAMES TF[22]= { PERIOD_CURRENT,PERIOD_M1,PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M20,PERIOD_M30, PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8,PERIOD_H12,PERIOD_D1,PERIOD_W1,PERIOD_MN1 }; static bool newbar[22]; static bool FirstTime=true; static int acb[22]; // array of current bars if(FirstTime) { for(int i=0;i<22;i++) acb[i]=Bars(Symbol(),TF[i]); FirstTime=false; return(false); } int curtf=0; while(TF[curtf]!=tf) curtf++; if(out) return (newbar[curtf]); for(int i=0;i<22;i++) { int CurBars=Bars(Symbol(),TF[i]); if(acb[i]<CurBars) { acb[i]=CurBars; newbar[i]=true; } else newbar[i]=false; } return(false); }もちろん、OnTickから 削除してOnTimerに 挿入することも可能です。 Artyom Trishkin 2017.09.10 20:32 #242 Реter Konow:この質問についてですが、私は間違っていると思います。サービスデスクにご確認ください。引用符の到着に関係なく、プラットフォームに新しいバーが 形成されているかどうか、という質問に答えさせます。いいえ」の場合は、新しいバーのイベントで、そのバーに引用があったかどうかを確認します。もしそうなら、新しいバーが形成されたことになる。こうすればいいんです。あまり変える必要はありません。 ああ、ママ・ミーア...。もう情報だけ読んでください。それを知らないとはとても驚きで、その話をされると、こちらも疑心暗鬼になってしまいます。そんな子供じみた質問には、サービスデスクの方にも目を向けません。笑われてしまいますよ。あなたのプロフィールにservicedeskへのリンクがあります。 Artyom Trishkin 2017.09.10 20:36 #243 Nikolai Semko: OOPの有用性を示すには、あまり良い例ではないような気がします。 例えば、1つの機能だけを使ったバリエーションを紹介します。もちろん、OnTickから 削除してOnTimerに 挿入することも可能です。ロジックは見ていないのですが、まあ仮に正しく動作するとしましょう。 また、任意のキャラクターによって?プログラムはMarket Overviewウィンドウからシンボルのリストを使用し、ユーザーはいつでもシンボルセットを変更できると想像してください。 Andrey Kisselyov 2017.09.10 20:45 #244 個人的には@Nikolai Semkoの OOPコードを見ませんでした。 謹んで申し上げます。 Vitaly Muzichenko 2017.09.10 20:50 #245 Artyomは少し質問が遅れていますが、質問はこうです:正しく動作するように手続き型で書いてください。void OnTick() { if(IsNewBar("AUDCAD",PERIOD_H1)) { // задача №1 } if(IsNewBar("GBPJPY",PERIOD_M15)) { // задача №2 } if(IsNewBar("EURUSD",PERIOD_H4)) { // задача №3 } } // Функция "Новый бар" bool IsNewBar(....) { здесь код, который нужно написать } Vasiliy Pushkaryov 2017.09.10 20:55 #246 Реter Konow:はいタイマーで。引用符のない新しいバーが表示されます。我々は、Optisk()で引用符を固定することができる一方で、バーが出現 するイベントに正確に興味を持っています。いずれにせよバーが表示されます。ここでは 、バーについて解説しています。Time[i] バーのオープン時間は通常、ティック到着時間と一致しません。どの時間枠のバーの開始時刻も、常に時間枠の倍数です。時間枠内に発生した最初のティックは、バーが形成されるもの で、時間枠内にティックが到着しない場合は、時間枠内にバーは形成されません。 Artyom Trishkin 2017.09.10 20:55 #247 Vitaly Muzichenko:Artyomはその質問をあまり取り上げませんでしたが、問題はこうです:手続き型で書いて、正しく動作するようにすること早く、便利に、簡単に、シンプルに実行できるように、徐々にタスクを追加していきたいと思いました。後でOOPを使って簡単にできることを示すため。しかし、OOPを否定した張本人自身が、問題の解決に背を向けてしまったのです :) Vitaly Muzichenko 2017.09.10 21:04 #248 Artyom Trishkin:早く、便利に、簡単に、シンプルに実行できるように、徐々にタスクを追加していきたいと思いました。その時、OOPでいかに簡単にできるかを示すこと。しかし、OOPの主な拒絶者自身が、課題の解決策を拒絶している :)そうですね......自分ではあまり述べていなかったので、言い換えますね。アルテムは少し質問を開けなかったし、質問はこれである:それが 正しく 働くことプロシージャルの様式で書くため多分、彼は戻って来て、非常に簡単でシンプルであることを証明するでしょう。 Artyom Trishkin 2017.09.10 21:21 #249 Vitaly Muzichenko:自分ではうまく言えなかったので、言い直します。Artyomはその質問をあまり取り上げませんでしたが、その質問とは、手続き型で書いて、正しく 動作する ようにすることです。もしかしたら、彼は戻ってきて、それがとても簡単でシンプルであることを証明してくれるかもしれません。最終的には彼のプロシージャルスタイルのコードを、このようなループで動作させるという目標がありました。 ENUM_TIMEFRAMES array_timeframes[]= { PERIOD_M1,PERIOD_M2,PERIOD_M3,PERIOD_M4,PERIOD_M5,PERIOD_M6,PERIOD_M10,PERIOD_M12,PERIOD_M15,PERIOD_M30, PERIOD_H1,PERIOD_H2,PERIOD_H3,PERIOD_H4,PERIOD_H6,PERIOD_H8,PERIOD_H12,PERIOD_D1,PERIOD_W1,PERIOD_MN1 }; int total=SymbolsTotal(true), total_tf=ArraySize(array_timeframes); for(int i=0; i<total; i++){ string symbol_name=SymbolName(i,true); for(int j=0; j<total_tf; j++){ if(IsNewBar(symbol_name,array_timeframes[j])){ Print("Новый бар на ",symbol_name," ",EnumToString(array_timeframes[j])); } } } Реter Konow 2017.09.10 21:41 #250 Artyom Trishkin:最終的には、彼の手続き型のコードがそのようなループの中で動くようになるという目標がありました。シンボルループ、引用符が到着したときに新しいバーが 開くかどうかのチェックなど、私のソリューションに簡単に追加することができました。それとOOPはどう関係があるのですか?あなたは間違った例を選んでいます。他のことを自由に考えてください。 1...181920212223242526272829303132...47 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
と聞かれるような関数を書けばいいだけです。"M5には新しいバーが ありますか?"と尋ねると、YES/NOの答えが返ってきます。
例えば、こんな感じです。
ここにあなたの関数IsNewBar()があります。私たちは、タスクをさらに拡張して、それをさらにひねったり回転させたりします。
OOPの有用性を示すには、あまり良い例ではないような気がします。
例えば、1つの機能だけを使ったバリエーションを紹介します。
もちろん、OnTickから 削除してOnTimerに 挿入することも可能です。
この質問についてですが、私は間違っていると思います。サービスデスクにご確認ください。引用符の到着に関係なく、プラットフォームに新しいバーが 形成されているかどうか、という質問に答えさせます。いいえ」の場合は、新しいバーのイベントで、そのバーに引用があったかどうかを確認します。もしそうなら、新しいバーが形成されたことになる。こうすればいいんです。あまり変える必要はありません。
OOPの有用性を示すには、あまり良い例ではないような気がします。
例えば、1つの機能だけを使ったバリエーションを紹介します。
もちろん、OnTickから 削除してOnTimerに 挿入することも可能です。
ロジックは見ていないのですが、まあ仮に正しく動作するとしましょう。
また、任意のキャラクターによって?
プログラムはMarket Overviewウィンドウからシンボルのリストを使用し、ユーザーはいつでもシンボルセットを変更できると想像してください。
謹んで申し上げます。
Artyomは少し質問が遅れていますが、質問はこうです:正しく動作するように手続き型で書いてください。
はいタイマーで。引用符のない新しいバーが表示されます。我々は、Optisk()で引用符を固定することができる一方で、バーが出現 するイベントに正確に興味を持っています。
いずれにせよバーが表示されます。
ここでは 、バーについて解説しています。
Time[i] バーのオープン時間は通常、ティック到着時間と一致しません。どの時間枠のバーの開始時刻も、常に時間枠の倍数です。時間枠内に発生した最初のティックは、バーが形成されるもの で、時間枠内にティックが到着しない場合は、時間枠内にバーは形成されません。
Artyomはその質問をあまり取り上げませんでしたが、問題はこうです:手続き型で書いて、正しく動作するようにすること
早く、便利に、簡単に、シンプルに実行できるように、徐々にタスクを追加していきたいと思いました。後でOOPを使って簡単にできることを示すため。
しかし、OOPを否定した張本人自身が、問題の解決に背を向けてしまったのです :)
早く、便利に、簡単に、シンプルに実行できるように、徐々にタスクを追加していきたいと思いました。その時、OOPでいかに簡単にできるかを示すこと。
しかし、OOPの主な拒絶者自身が、課題の解決策を拒絶している :)
そうですね......自分ではあまり述べていなかったので、言い換えますね。
アルテムは少し質問を開けなかったし、質問はこれである:それが 正しく 働くことプロシージャルの様式で書くため
多分、彼は戻って来て、非常に簡単でシンプルであることを証明するでしょう。
自分ではうまく言えなかったので、言い直します。
Artyomはその質問をあまり取り上げませんでしたが、その質問とは、手続き型で書いて、正しく 動作する ようにすることです。
もしかしたら、彼は戻ってきて、それがとても簡単でシンプルであることを証明してくれるかもしれません。
最終的には彼のプロシージャルスタイルのコードを、このようなループで動作させるという目標がありました。
最終的には、彼の手続き型のコードがそのようなループの中で動くようになるという目標がありました。
シンボルループ、引用符が到着したときに新しいバーが 開くかどうかのチェックなど、私のソリューションに簡単に追加することができました。それとOOPはどう関係があるのですか?
あなたは間違った例を選んでいます。他のことを自由に考えてください。