EAの新しい配信方法を考えてみる。その1
おはようございます。
fx-on.comの岩淵です。
現在fx-on.comで販売しているEAは、どれも売り切りとなっております。
しかしユーザーの利便性を考えると、もっと様々な選択肢があってもいいのではないかと思いました。
ということで以下の3点の実装をチャレンジしてみました。
1.MT4からEAをダウンロード
買った商品をブラウザからダウンロードして、MT4の所定のフォルダに保存は手間かなと思います。
できればMT4から直接ダウンロードしたいものです。
2.デモ版のダウンロード
買ったEAをちゃんと運用できるか?
そもそもちゃんと作られたEAなのか?
などなど、EAを購入前に不安を感じる人は少なくないのかと思います。
そんな方の為にデモ口座限定で動作するデモ版EAがダウンロードできて使えたら便利じゃないかなと思います。
これを実現するだけなら、fx-onスタッフがweb認証用のコードを挿入するときにデモ制限用のコードを入れた別バージョンも作成すればいいのですが、それだと手間が掛かり過ぎるので自動化に挑戦してみます。
3.使った分だけの支払い
EAの値段は決して安くないです。
私がFXを始めた時は軍資金20万円で開始しましたが、20万円だとEA代を回収するのも一苦労です。
今流行?の使った分だけの支払いができるとEA代回収の心配が不要かと思います。
例えば1,000通貨取引毎に代金が2円発生、みたいな感じです。
以上3点に挑戦してみたいと思います。
やることが多いので複数回に分けて投稿していきます。
MT4からEAをダウンロードに挑戦
まずはMT4からファイルのダウンロードに挑戦します。 今回ダウンロードするのはコンパイル済みのex4ファイルです。 テキストファイルはダウンロードが簡単なのですが、テキストと同じようにダウンロードしてもうまく行きませんでした。 バイナリーデータがどうのこうのとか、もし画像ファイルだったらどうやってダウンロードすればいいのかとか色々と迷走した結果がこちらのコードです。#property version "1.00" #property strict #import "shell32.dll" int ShellExecuteW(int, string, string, string, string, int); #import extern string URL = "http://labo.fx-on.com/download/"; //ダウンロード元URL extern string FileName = "hoge.ex4"; //ダウンロードファイル名 extern string Folder = "Experts"; //保存先フォルダ名 int OnInit(){ string command; command = "/c @powershell -NoProfile -ExecutionPolicy Bypass -Command"; command += " \"$d=new-object System.Net.WebClient;"; command += "$d.Proxy.Credentials=[System.Net.CredentialCache]::DefaultNetworkCredentials;"; command += "$d.DownloadFile('"; command += URL; command += FileName; command += "', '"; command += TerminalInfoString(TERMINAL_DATA_PATH); command += "\\MQL4\\" + Folder + "\\"; command += FileName; command += "')\""; if(Shell32::ShellExecuteW(0, "open", "C:\\Windows\\System32\\cmd.exe", command, "", 0) > 32){ Sleep(5000); Print(command); MessageBox(FileName + "をダウンロードしました。\n更新または再起動を行って下さい。"); } return(INIT_SUCCEEDED); } void OnTick(){}チャートへ適用するとhoge.ex4をダウンロードしてきます。 hoge.ex4はあらかじめサーバーにアップロードしてあります。 実行前 実行後