SSブログ

MQL4ってプログラミング環境としてはちょっと貧弱かも? [投資]

相変わらずメタトレーダーと格闘中です。
調べた事を以下に箇条書きにします。


start()関数はマルチスレッドなのか?:
調査するために以下に示すようなEAを作って実験してみました。
--ここから--
int start() {
if (IsTradeAllowed()) {
Print("IsTradeAllowed()=true");
} else {
Print("IsTradeAllowed()=false");
}
Sleep(10000);
return(0);
}
--ここまで--
実行結果を以下に示します。

startTest.jpg

思ったよりティックしていないので、ある通貨ペアでstart()実行中にティックが発生した場合のテストになっていないかも?
Sleep()に指定するミリ秒をもう一桁大きい値にしておけばよかったな・・・

ただUSD/JPYとEUR/JPYで同時にstart()が実行された場合のテストにはなっていると思います。
IsTradeAllowed()はすべてtrueを返してますね・・・
start()ってマルチスレッドじゃなくてマルチプロセスなのかな?
いずれにしても、IsTradeAllowed()の使い方はよくわからないですね。
リファレンスを見ても
Returns TRUE if the expert is allowed to trade and a thread for trading is not occupied, otherwise returns FALSE.
エキスパートがトレードを許可されて、トレードのスレッドが占有されていない場合は、TRUE を返し、そうでない場合は、FALSE を返します。

としか書いていないし・・・
まあ、この文章を読む限りマルチスレッドで間違いなさそうだけど・・・
この説明だけじゃよくわからないですよね。
MQL4ってグローバル変数を多用する思想みたいだけど、グローバル変数にアクセスする際にロックする関数とか無さそうだし・・・
まあ、お客様のために書くコードじゃないんで、この辺りは深く考えずにFXメタトレーダー実践プログラミング (現代の錬金術師シリーズ)がライブラリ化してくれているトレード関数を使った方が良さそうですね。



Macからだとコーディングし難い(笑):
私はMacからVMを使ってWindows2000を起動して、そこでメタトレーダーを動かしています。
っで、コーディングをメタエディターを使って行うわけですが・・・
Macユーザの方ならわかってもらえると思いますが、Macのキーボードってcontrolキーがshiftキーの上に付いているんですよね。
Macの場合commandキーっていうのがあって、コピー&ペーストとかはcommand+c→command+vだったりします。
でもWindowsではcontrol+c→control+vだったりします。
なのでcontrolキーを押し難いはMac環境とWindows環境で使うキーが違うはでとにかく使い難いです(笑)
メタエディター自体もスペースやタブを表示してくれなかったり、自動生成する雛形のカッコの付け方が私のコーディングスタイルと違ったりと、とにかく使い難いです。
インデントがスペース三個ってのも個性的っていうか微妙ですよねぇ。
インデントはタブ派の私には合わないです。
メタエディターの設定でインデントは変更できるのですが、雛形には反映されないんですよね・・・
eclipseみたいにインデントの自動整形機能とかあれば良いのに・・・



やっぱりスワップポイントを調べる関数は無いですね・・・:
FXにはスワップポイントというものが存在する以上、スワップポイントが貰える方向に多少はバイアスがかかっていると思うのですが・・・
「リファレンスに載っていないだけで、隠し関数として通貨ペアを指定してスワップポイントを返す関数があるんじゃね?」と思いmqhファイルを漁ってみましたが、やはりそのような関数は無いようです。
う〜ん。やっぱりFXってデイトレが基本なのかなぁ・・・



総評:
MacからVMでWindowsを起動して使っているという私の事情を差し引いて考えても「MQL4はプログラミング環境としては少し貧弱かなぁ?」と思います。
MQL5ではその辺り改善されているのだろうか・・・
しかしMQL4が普及してしまっている以上、MQL5を積極的に採用するFX業者は少ないでしょうし、ある程度割りきってEAを作成して行くしか無さそうですね・・・

nice!(5)  コメント(0)  トラックバック(0) 
共通テーマ:マネー

footprint 5

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました
Related Posts Plugin for WordPress, Blogger...

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。