mql5言語の特徴、微妙なニュアンスとテクニック - ページ 111 1...104105106107108109110111112113114115116117118...247 新しいコメント Artyom Trishkin 2018.12.15 06:11 #1101 pavlick_:...メッセージ入力フィールドの上にメニューがあり、そこにすべてがあります。そして、ホットキーもそこに記述されています。 あなたの「引用」を修正しました。 Alexey Navoykov 2018.12.15 06:13 #1102 pavlick_:どう同じなのでしょうか?自動コピーコンストラクタがあり、すべての操作はビューを持つことになります。 ... ar.Add(new(q));これで、MQLに自動コピーコンストラクタが無いという話だったことがはっきりしました。 fxsaber 2018.12.22 19:53 #1103 問題点 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム バグ、バグ、質問 fxsaber さん 2018.12.21 10:23 どうしても分からないので、ヒントを求めてください。そのような時間の取得があります int GetHandle() { return(0); } bool SelectHandle( int ) { return(true); } int NewHandle = 0; int PrevHandle = GetHandle(); datetime time = SelectHandle(NewHandle) ? TimeCurrent() : 0; SelectHandle(PrevHandle); 同じことをするマクロの書き方 time = MACROS(NewHandle, TimeCurrent()); // Макрос 問題は、マクロ内のPrevHandleが作成できないことです。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム バグ、バグ、質問 fxsaber さん 2018.12.21 22:15 NewHandle - は定数にすることができることを明確にしましょう。すなわち、次のような有効なコールです。 time = MACROS(0, TimeCurrent()); // TimeCurrent из 0-хендла. time = MACROS(1, TimeCurrent()); // TimeCurrent из 1-хендла. MACROS(0, SymbolInfoTick(_Symbol, Tick)); // SymbolInfoTick из 0-хендла. #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID) Price = MACROS(3, Bid); // Bid из 3-хендла. 解決方法 template <typename T> T Memory( const T NewValue, const bool SetFlag = true ) { static T PrevValue; if (SetFlag) PrevValue = NewValue; return(PrevValue); } template <typename T1, typename T2> T2 MacrosFunc( const T1, const T2 Value, const T1 ) { return(Value); } #define MACROS(A, B) MacrosFunc(SelectHandle(Memory(A, false)), B, SelectHandle(Memory(A))) Alexey Navoykov 2018.12.22 20:37 #1104 fxsaber: 解決方法... template <typename T1, typename T2> T2 MacrosFunc( const T1, const T2 Value, const T1 ) { return(Value); } #define MACROS(A, B) MacrosFunc(SelectHandle(Memory(A, false)), B, SelectHandle(Memory(A)))他とは関係なく、必ず式Bが 計算されて返されます。 fxsaber 2018.12.22 20:53 #1105 Alexey Navoykov:B 式は、他と関係なく、常に計算されて返されます。補助関数の入力パラメータを逐次(右から左へ)計算するものがある。 Alexey Navoykov 2018.12.22 21:07 #1106 fxsaber:補助関数の入力パラメータを逐次(右から左へ)計算するものがある。 これにより何が変わるかというと、マクロは常に値Bを返します。 fxsaber 2018.12.22 21:10 #1107 Alexey Navoykov: マクロは常にBを返します。判定に反論してみる。エラーが表示されないのですが。 まずNewHandleに切り替わり、次にBを取り、そして前のハンドルに切り替わります。 Alexey Navoykov 2018.12.22 21:18 #1108 fxsaber:まずNewHandleに切り替わり、次にBを取り、そして前のハンドルに切り替わります。そして、本来のタスクはこんな感じ。 SelectHandle(NewHandle) ? TimeCurrent() : 0; SelectHandle(PrevHandle); すなわち、条件を満たす必要があります。 fxsaber 2018.12.22 21:25 #1109 Alexey Navoykov:そして、当初の問題はこれでした。これも同じです。 template <typename T1, typename T2> T2 MacrosFunc( const T1 NewHandle, const T2 Value ) { return(Value); } #define MACROS(A, B) MacrosFunc(SelectHandle(Memory(A, false)), SelectHandle(Memory(A)) ? B : 0) SymbolInfoTickとSymbolInfoDoubleなど、問題をある程度まとめたコメントを出した後。 Alexey Navoykov 2018.12.22 21:28 #1110 ちなみに、一般的なケースとして、関数の戻り値の型が絶対型である場合、この問題はMQLでは解決できないという結論に達しました。 ここにはないdecltypeが必要なのです。 1...104105106107108109110111112113114115116117118...247 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
...
メッセージ入力フィールドの上にメニューがあり、そこにすべてがあります。そして、ホットキーもそこに記述されています。
あなたの「引用」を修正しました。
どう同じなのでしょうか?自動コピーコンストラクタがあり、すべての操作はビューを持つことになります。
... ar.Add(new(q));
これで、MQLに自動コピーコンストラクタが無いという話だったことがはっきりしました。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2018.12.21 10:23
どうしても分からないので、ヒントを求めてください。そのような時間の取得があります
同じことをするマクロの書き方
問題は、マクロ内のPrevHandleが作成できないことです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2018.12.21 22:15
解決方法
解決方法
他とは関係なく、必ず式Bが 計算されて返されます。
B 式は、他と関係なく、常に計算されて返されます。
補助関数の入力パラメータを逐次(右から左へ)計算するものがある。
補助関数の入力パラメータを逐次(右から左へ)計算するものがある。
マクロは常にBを返します。
判定に反論してみる。エラーが表示されないのですが。
まずNewHandleに切り替わり、次にBを取り、そして前のハンドルに切り替わります。
まずNewHandleに切り替わり、次にBを取り、そして前のハンドルに切り替わります。
そして、本来のタスクはこんな感じ。
すなわち、条件を満たす必要があります。そして、当初の問題はこれでした。
これも同じです。
SymbolInfoTickとSymbolInfoDoubleなど、問題をある程度まとめたコメントを出した後。
ちなみに、一般的なケースとして、関数の戻り値の型が絶対型である場合、この問題はMQLでは解決できないという結論に達しました。 ここにはないdecltypeが必要なのです。