MT4

Visual C++ 2010 ExpressでDLLを作成する 〜 DLLをMetatrader4(MT4)で使用する

今回のエントリーを残すことになった背景は「【未解決】作成したDLLをMT4で動かしたいが、動かない」。 Linuxでmingwを使用して作成したDLLを、windows8で動作させているMT4プログラムでimportして動かしたかったが動かなかった問題。 windows7で動いていた…

【未解決→解決】作成したDLLをMT4で動かしたいが、動かない

「C言語でのDLLの作成」でどうしてDLLを作成したかというと全てはMT4で動かすため。 MT4のバージョンが600系になった頃だったか、自作EAで動かないものが少しずつでてきた(※仕事が忙しくてだいぶ放置しているのが現状なので、正確に覚えていないけど)。DLL…

linuxBeanにMT4をインストールする

まずは環境の確認。unameを用いてシステム情報を表示する。 $uname -a kernelは3.13.0-34-generic、OSは32bitのlinuxBeanである。 次に、wineのバージョンを確認する。linuxBeanにはデフォルトでwineがインストールされている。 user@dev:~$ wine --version …

MQL4 Build600系にて、パラメータをinputで定義したら、constant cannot be modified

最近、わからないことをメモするだけで、解決策を残さないエントリーが多い。今日も懲りずに、わからないことをメモするだけで、解決策は残さない。下記のように定義していたら、エラー。下記はScript。 input datetime EndTime = "2014/03/28"; //+--------…

Google DriveにEAを格納したら音声ファイルとして認識された???

MT5対応をしていないため、MT4をBuild610にupdateして、ただでさえ混乱している時に奇妙な現象発生w。Google DriveにEAを格納したら音声ファイルとして認識された!Google DriveにEA保存したら音声ファイルとして認識されたw。updateしたMT4だとファイル構…

Metatrader4 Build 610にupdateせざるを得なかった・・・

先日のエントリーにて、Metatrader4がBuild509からBuild610にupdateされて困ったことがあったと書いた。調べていたらzai fxの記事にて特集が組まれており、updateされないようにするために、「コンピュータへの変更を許可しない」方法が記載されていた。私も…

Metatrader4 Build610

久しぶりにMT4を別PCにインストールしようと思い、ダウンロード。作成済みの資源(expertsフォルダやtemplatesフォルダ)をインストールしようと思ったら見当たらない。おかしいと思ってバージョンを確認すると、Build610だった。2月14日にリリースされたよ…

iBarShift関数について

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

MT4でCSVファイル読み込み

色々なことをやる・やらされると、すぐに色々忘れてしまうのが私です。今回も、「MT4でのCSVファイルからの読み込み」と同様に、チョー基礎事項。。。4時間足の本数が変わっていた場合に、CSVファイルから文字列を読み込みたい場合、どうするか。最初は次の…

OrderSend関数で利益確定ポイント・損切りポイントを指定する

OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point); この例の場合、Ask+TakeProfit*Pointを利益確定ポイントとして設定している。損切りポイントは、0となっている。ここで、利益確定ポイントの値には、Ask(買値)に、利益確定幅(TakeProfit)…

ポジションクローズ関数

「売買シグナルの表示」で学習した豊嶋先生の本に記載のあるプログラムのEA編にてポジションクローズ関数があるので、それについてメモ。 それにしても、以前のエントリーが1月19日なので、1ヶ月半も経っているのか。休日出勤続きで毎日夜中まで働いてい…

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

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

MT4で配列のサイズを宣言せずに使用したら、各要素に同じ値が入っていた・・・

理由は全く分かりません。調べていません。とりあえず、メモ。 前にも同じようなことをやらかした気がする・・・。 string mysqlFileInfo[]; int init(){ while(!FileIsEnding(mysqlFileHandle)){ mysqlFileInfo[i] = FileReadString(mysqlFileHandle); } db…

MT4でのCSVファイルからの読み込み

昨日に引き続き、基礎基礎事項。。。CSVファイルへの書き込みの時には特に考えていなかったんだけど、久しぶりにCSVファイルから読み込もうと思ったら5分くらい考えこんでしまったのでメモ。Metatraderのファイル関数を調べると、1行読み込む関数がどれな…

MT4での時刻の取得

仕事が忙しすぎて、何もできていないgraySpaceです・・・。平日の自宅滞在時間が6時間(睡眠時間こみ)って・・・。その上、週末出勤なので裁量トレードは当然として、プログラミングすら出来ません・・・。忘れやすいので、時刻取得の方法すら忘れていたの…

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

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

MT4でMySQLのDLLがインポート出来ない 〜 cannot load library 'libmysql.dll'(error 126)

MT4からMySQLに接続するために、libmysql.dllをimportした。 ところが、チャート上にロードした瞬間にロードに失敗してエラーで落ちた。libmysql.dllはexperts/librariesフォルダにコピーしてある。理由が全く分からず、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画面上に表示したところで文字化け(T_T)

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

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

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

売買シグナルの表示

図の上矢印や下矢印で、条件を満たした際に、買いシグナルや売りシグナルを表示させる方法。表示のためのポイントは下記2つかと思う。 ・ポイント1 シグナル用のバッファを用意すること。 用意したバッファに、シグナルを表示させるポイント(価格の始値な…

MT4 〜 C言語で作成したDLLをMQL4で使用する

色々なブログなどで紹介されているが、C言語で作成したプログラムをDLLとしてimportしてMQL4から呼び出す作業を自らしたのは初めてなのでメモ。【大きな流れ】 1.MQL4から呼び出したいC言語のプログラムを作成する。 2.DLLを作成する。 3.DLLを呼び出…