初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 196 1...189190191192193194195196197198199200201202203...260 新しいコメント Vladimir Karputov 2020.02.01 18:42 #1951 Vitaly Muzichenko: これはレイアウトで、4と5の違いはありません ハンドルは各ステップ毎ではなく、OnInit()で一度だけ作成する必要があります。まだ知らないの? Vitaly Muzichenko 2020.02.01 18:51 #1952 削除、要検討。 Vladimir Karputov 2020.02.01 18:55 #1953 Vitaly Muzichenko: これはどうでしょう? そして、この方法でも、すべてのティックにハンドルが作成 されます。 Stylerを 使えば、ロジックの間違いがすぐにわかります。 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double MA(string symb,ENUM_TIMEFRAMES tf,int period,int ma_shift, ENUM_MA_METHOD method,ENUM_APPLIED_PRICE price,int index) { #ifdef __MQL4__ return(iMA(symb,tf,period,ma_shift,method,price,index)); #else double buf[1]; static int hMA=-1; int handle=iMA(symb,tf,period,ma_shift,method,price); if(handle<hMA) { PrintFormat("Failed to create handle MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } else { if(CopyBuffer(handle,0,index,1,buf)<0) { PrintFormat("Failed to copy data from the indicator MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } } hMA=handle; return(buf[0]); #endif } Vitaly Muzichenko 2020.02.01 19:04 #1954 Vladimir Karputov: それでも、刻み目ごとにハンドルを作って いるのですね。 Stylerを 使えば、ロジックの間違いがすぐにわかります。 このように double MA(string symb,ENUM_TIMEFRAMES tf,int period,int ma_shift, ENUM_MA_METHOD method,ENUM_APPLIED_PRICE price,int index) { #ifdef __MQL4__ return(iMA(symb,tf,period,ma_shift,method,price,index)); #else double buf[1]; static int handle=-1; if(handle<0) { handle=iMA(symb,tf,period,ma_shift,method,price); } if(handle<0) { PrintFormat("Failed to create handle MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } else { if(CopyBuffer(handle,0,index,1,buf)<0) { PrintFormat("Failed to copy data from the indicator MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } } return(buf[0]); #endif } そして、残りのピークサーチコードはクロスプラットフォーム化されています Vladimir Karputov 2020.02.01 19:07 #1955 Vitaly Muzichenko: そうだと思います。 そして、残りのピークサーチコードはクロスプラットフォーム化されています ああ、それは... //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double MA(string symb,ENUM_TIMEFRAMES tf,int period,int ma_shift, ENUM_MA_METHOD method,ENUM_APPLIED_PRICE price,int index) { #ifdef __MQL4__ return(iMA(symb,tf,period,ma_shift,method,price,index)); #else double buf[1]; static int handle=-1; if(handle<0) { handle=iMA(symb,tf,period,ma_shift,method,price); } if(handle<0) { PrintFormat("Failed to create handle MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } else { if(CopyBuffer(handle,0,index,1,buf)<0) { PrintFormat("Failed to copy data from the indicator MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } } return(buf[0]); #endif } が明らかに良い。しかし、このブロックは場所がずれて います。 ハンドラを作成した 直後に置かれるべきものです。 Vitaly Muzichenko 2020.02.01 19:12 #1956 Vladimir Karputov: はい、今すぐ が明らかに良い。しかし、このブロックは間違った場所に あります。 ハンドルを作成した 直後に配置されるべきものです。 一番良い方法は、おそらくこのような方法で、一度だけ作成エラーを表示しますが、その後、if(...)のチェックが少なくなることです。 double MA(string symb,ENUM_TIMEFRAMES tf,int period,int ma_shift, ENUM_MA_METHOD method,ENUM_APPLIED_PRICE price,int index) { #ifdef __MQL4__ return(iMA(symb,tf,period,ma_shift,method,price,index)); #else double buf[1]; static int handle=-1; if(handle<0) { handle=iMA(symb,tf,period,ma_shift,method,price); PrintFormat("Failed to create handle MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } else { if(CopyBuffer(handle,0,index,1,buf)<0) { PrintFormat("Failed to copy data from the indicator MA %s/%s, Error: %d",symb,sTF(tf),GetLastError()); return(WRONG_VALUE); } } return(buf[0]); #endif } Vladimir Karputov 2020.02.01 19:17 #1957 Vitaly Muzichenko: 一番良い方法は、このような方法でしょう。一度だけ作成エラーを表示しますが、そうすれば、if(...)のチェックが少なくなります。 私はあなたの混乱の中で何も見ることができません - それはすべてぼやける。スタイラーを 使う。 Vitaly Muzichenko 2020.02.01 19:23 #1958 Vladimir Karputov: お粥の中に何も見えない、全部溶け込んでいる。スタイラーを 使う。 どちらかというと、スタイリング剤に自分のスタイルを見いだせず、ああいうのが多いですね ファイル: cc.PNG 100 kb GlaVredFX 2020.02.01 19:51 #1959 残念ながら、私のインデクサはMQL4をベースにしており、この機能はそのごく一部に過ぎません。 だから、MQL5を実装するのは効率が悪いし、全部書き直すとなると時間もかかるし、問題も多いんです。 Artyom Trishkin 2020.02.01 19:52 #1960 GlaVredFX: 残念ながら、私のインデクサはMQL4をベースにしており、この機能はそのごく一部に過ぎません。 だから、MQL5を実装するのは効率が悪いし、全部書き直すとなると時間もかかるし、問題も多いんです。 MQL5でインジケータを書き換えるのに平均30分。コーヒーと一緒に。 1...189190191192193194195196197198199200201202203...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これはレイアウトで、4と5の違いはありません
ハンドルは各ステップ毎ではなく、OnInit()で一度だけ作成する必要があります。まだ知らないの?
これはどうでしょう?
そして、この方法でも、すべてのティックにハンドルが作成 されます。 Stylerを 使えば、ロジックの間違いがすぐにわかります。
それでも、刻み目ごとにハンドルを作って いるのですね。 Stylerを 使えば、ロジックの間違いがすぐにわかります。
このように
そして、残りのピークサーチコードはクロスプラットフォーム化されていますそうだと思います。
そして、残りのピークサーチコードはクロスプラットフォーム化されていますああ、それは...
が明らかに良い。しかし、このブロックは場所がずれて います。 ハンドラを作成した 直後に置かれるべきものです。
はい、今すぐ
が明らかに良い。しかし、このブロックは間違った場所に あります。 ハンドルを作成した 直後に配置されるべきものです。
一番良い方法は、おそらくこのような方法で、一度だけ作成エラーを表示しますが、その後、if(...)のチェックが少なくなることです。
一番良い方法は、このような方法でしょう。一度だけ作成エラーを表示しますが、そうすれば、if(...)のチェックが少なくなります。
私はあなたの混乱の中で何も見ることができません - それはすべてぼやける。
スタイラーを 使う。お粥の中に何も見えない、全部溶け込んでいる。
スタイラーを 使う。どちらかというと、スタイリング剤に自分のスタイルを見いだせず、ああいうのが多いですね
残念ながら、私のインデクサはMQL4をベースにしており、この機能はそのごく一部に過ぎません。
だから、MQL5を実装するのは効率が悪いし、全部書き直すとなると時間もかかるし、問題も多いんです。
残念ながら、私のインデクサはMQL4をベースにしており、この機能はそのごく一部に過ぎません。
だから、MQL5を実装するのは効率が悪いし、全部書き直すとなると時間もかかるし、問題も多いんです。
MQL5でインジケータを書き換えるのに平均30分。コーヒーと一緒に。