Indicator

iBarShift関数について

だいぶ昔に作成したPivotを利用するインディケーターを見直していて自分が書いたのに、意図が分からない部分があったので。しかも、基礎的な部分w。Pivotを計算するコードで常套的な書き方だけど下記のような部分。 for(int i=limit-1 ; 0<=i; i--){ int sh…

MQL4のプログラムをEclipseで書く

長い間、使いづらいなぁと思いつつ、手打ちは大事だと言い聞かせ、MetaEditorでコードを書いていた。でも、年度も変わったし、1年たったから、そろそろ次にステップに進もうと思ってエディタをEclipseに乗り換えた。使いやすい!!!\(-o-)/補完機能を使…

libmysql.dllだけで対処することは諦めてMySQL wrapperを使用してみる

「libmysql.dllだけでは、selectの結果をMetatrader4で扱えない?」で、libmysql.dllだけを使用してMySQLからselectするMT4プログラムを動かそうとしたが自力ではできずに諦め、MySQL wrapperを使用することにした。 以下、その時のメモ。 0.資源を「MQL4 …

libmysql.dllだけでは、selectの結果をMetatrader4で扱えない?

libmysql.dllをインポートしてMySQLに作成したテーブルからデータを取得し、MQLプログラム中で扱おうとしたが上手くいかない。 create tableは実行できたので、おそらく実行結果を適切な型で扱わないといけないと思われるが、libmysql.dllだけでは出来ないの…

R for MetaTraderの導入

だーいぶ昔に既に検証されていることです。 有名なfaiさんのサイトを参考にしました。というか殆どそのまま。1.まずは7bitさんのサイトから「R for MetaTrader」をダウンロードする。2.ダウンロードしたDLLとmqhを配置する。 mt4R.mqh -> include フォル…

Comment関数はstart関数内に複数回書いても最後の1行だけが実行される

start関数内に次のように複数回Commentを書いても、最後に書いた1行しか表示されない。 int start() { //Comment Comment("Adk=", Ask, ", ","Bid=", Bid); Comment("LocalTime: ", TimeToStr(TimeLocal())); Comment("ServerTime: ", TimeToStr(TimeCurrent…

iMAOnArrayに関して疑問に思ったこと。理由は分かっていないけど。

MQL4のiMAOnArray関数で分からないことがある。 単に自分の使い方が間違っているだけだろうが。メタエディターのNavigatorのDictionaryからiMAOnArrayの説明を引用したのが下記。 double iMAOnArray( double array, int total, int period, int ma_shift, in…

配列に値を代入しているのに、常に0になってしまう。 〜 配列のサイズ変更ArrayResize

単純なバグだけど、ハマってしまった。インディケーター作成を題材にMQL4の練習をしているときの話。 次のコードはローソク足の終値(Close[i+j])を、予め用意した配列smaVal[]と変数tmpに代入するだけのコード。このコードにはバグが有る。 #property indi…

インディケーターの線の色や太さの設定 〜 SetIndexStyle関数

インディケーター作って表示してみたけど、何も見えない。 線の色が背景色と同じだったから・・・。 //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+-----------------------------…

存在しないデータ部分を計算しない

データ開始部分はデータが無いため、インディケーターの表示がおかしい。 int start() { int limit = Bars-IndicatorCounted(); for(int i=limit-1; 0<=i; i--){ Buf[i] = 0; for(int j=0; j

MT4のインディケーター作成プログラミングで線の太さを変更しても反映されない

「インディケーターの線の色や太さの設定 〜 プリプロセッサ命令」で線の色や太さを変更する方法を書いたが、線の太さが変わらなくなってハマった。結論から述べると、線の太さが2以上の場合は、線の太さ種類が必ず実線になるようだ。・線の太さが1の場合 ・…

インディケーターの線の色や太さの設定 〜 プリプロセッサ命令

「インディケーターの線の色や太さの設定 〜 SetIndexStyle関数」では関数を使用して、インディケーターの線種や色を変更した。プリプロセッサ命令でも可能なので、メモ。 これらを使用する。他にも色々あるけど、その他は適宜調べる。 #property indicator_…

Webから取得した文字列をMT4画面上に表示したところで文字化け(T_T)

Webから取得した文字列をMT4画面に表示して\(-o-)/となっていたところ。 HTMLタグを取り除いていないので、それを取り除いたら一段落だと思っていた。 だけど大間違い。日本語表示したら文字化けwwww。 MT4はShift-JISにしか対応していないようだ。た…

売買シグナルに使用する記号の一覧

メタエディターにはNavigatorというものがあり、そこからAPI一覧を検索できる。 今回は、売買シグナルを表示する際に使用したSetIndexArrowへ指定する矢印を検索する方法をメモしておく。