- ベストアンサー
MT4 スローストキャスティクスについて
- MT4のスローストキャスティクスのプログラムなのですが、クロスした際にサウンドを鳴らすには、どのようにプログラムを変えたら良いのでしょうか?
- 全くの初心者で困っています。どなたか、どうぞよろしくお願いします。
- スローストキャスティクスについて詳しい方から教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です。 確かに「サウンドを鳴らすには」とありました。 他の事でAlert表示を使っていたので、勝手に脳内で読み替えてしまったようです。 すいませんでした。 追加箇所として書いた static datetime lastAlertTime; if( AlertON && Time[0] > lastAlertTime ){ if( KBuffer[1] >= DBuffer[1] && KBuffer[2] < DBuffer[2] ){ Alert("Stochastic Cross Alert UP "+Symbol()); lastAlertTime = Time[0]; } if( KBuffer[1] <= DBuffer[1] && KBuffer[2] > DBuffer[2] ){ Alert("Stochastic Cross Alert DOWN "+Symbol()); lastAlertTime = Time[0]; } } この部分を変更してください。 static datetime lastAlertTime; if( AlertON && Time[0] > lastAlertTime ){ if( ( KBuffer[1] - DBuffer[1] ) * ( KBuffer[2] - DBuffer[2] ) < 0 ){ PlaySound("Alert"); lastAlertTime = Time[0]; } } これでクロスしたときに一度だけ音がなります。 クロスが成立している間音を鳴らし続けたければ、こちらに変更。 if( AlertON ){ if( ( KBuffer[1] - DBuffer[1] ) * ( KBuffer[2] - DBuffer[2] ) < 0 ){ PlaySound("Alert"); } } プログラムの勉強方法ですが、この2冊が「読むべき本」としてよく紹介されています。 ただ、多少プログラムに関する予備知識がないと難しい本のようです。 FXメタトレーダー入門 最先端システムトレードソフト使いこなし術 FXメタトレーダー実践プログラミング 高機能システムトレードソフト超活用術 最近出た本のなかでは、これが評判が良いです。 この本で組めるようになったという話も聞きます。 質問サイトでもこの本の影響と思われる質問もよく見かけます。 iCustomで変幻自在のメタトレーダー EAをコピペで作る方法 ある程度理解できるようになったら、このサイトで調べることが増えると思います。 直訳の日本語が読みづらいですが、慣れると大変便利です。 メタトレーダー4 MQL言語リファレンス日本語翻訳マニュアル http://www.metasys-seeker.net/MQL4_Reference_ver1/MQL4_Reference_Contents.html
その他の回答 (1)
- fhat6014
- ベストアンサー率94% (34/36)
プログラムの最初「#property」の下 //---- input parameters extern int KPeriod=42; extern int DPeriod=3; extern int Slowing=3; の部分に追加 //---- input parameters extern bool AlertON = true;//---追加箇所 extern int KPeriod=42; extern int DPeriod=3; extern int Slowing=3; プログラムの最後 for(i=0; i<limit; i++) KBuffer[i]=iMAOnArray(MainBuffer,Bars,Slowing,0,MODE_SMA,i); for(i=0; i<limit; i++) DBuffer[i]=iMAOnArray(KBuffer,Bars,DPeriod,0,MODE_SMA,i); //---- return(0); の部分に追加 for(i=0; i<limit; i++) KBuffer[i]=iMAOnArray(MainBuffer,Bars,Slowing,0,MODE_SMA,i); for(i=0; i<limit; i++) DBuffer[i]=iMAOnArray(KBuffer,Bars,DPeriod,0,MODE_SMA,i); //---ここから追加箇所 static datetime lastAlertTime; if( AlertON && Time[0] > lastAlertTime ){ if( KBuffer[1] >= DBuffer[1] && KBuffer[2] < DBuffer[2] ){ Alert("Stochastic Cross Alert UP "+Symbol()); lastAlertTime = Time[0]; } if( KBuffer[1] <= DBuffer[1] && KBuffer[2] > DBuffer[2] ){ Alert("Stochastic Cross Alert DOWN "+Symbol()); lastAlertTime = Time[0]; } } //----追加箇所ここまで //---- return(0);
お礼
こんにちは。早速、試してみてビックリしました。 ご教授いただいたのに申し訳ありませんが、Alertではなく、音(Sound)を 鳴らすには、どうしたらよいのでしょうか。 (私の記載がまずくて申し訳ないのですが・・・) それと、貴殿のようにMT4のプログラム(変更・作成)に詳しくなるには、 どうしたらよいのでしょうか? 何か書籍か何かあるのでしょうか? 本当にありがとうございました。 また、お時間があれば、教えていただけるとありがたいです。 以上
お礼
早速の回答ありがとうございます。 Bestです。こんなに速やかにすぐプログラムを変更できる 貴殿の能力が羨ましいです。 また、助けてください。 以上