趣味でつながる、仲間ができる、大人世代のSNS、趣味人倶楽部(しゅみーとくらぶ)

よくあるご質問

デコンパイルの話です。

自己紹介の時にも話しましたが自動売買に興味を持ち多数のEA(自動売買プログラム)を
買い求めました。

当時、MQLの知識など無く無謀な事をしていましたネ~~
自分独自のEA試験方法を定義し市販EAを検証しましたが、自らが納得するEAは
存在しませんでしたので、EAの自作を考えました。

よしEAを調べよう~!
そこで、市販EAの中身を解析する為ex4 to mq4変換、いわゆるEAのデコンパイルを
考えました。

様々な調査からDecompilerツール(限定使用)&デコンパイルサイトの情報を得ました。
当時のMT4はbuild500番台でしたがDecompilerツールを通過するEAは
数が限られました。

市販のEAには殆どプロテクトが掛かりデコンパイル不能の事態が発生した為
デコンパイルを行っているサイトに実費で変換を依頼しました。
尚、今現在デコンパイルを行っているサイトは閉鎖され存在しません

ポイントは以下の通りです。
・build600以前にデコンパイルされたmq4を現在のMeta_Editorでコンパイルすると
ERROR & WARNIGが発生、同VerのMeta_Editorでは正常にコンパイル終了
・現在VerのMeta_Editorで作成されたmq4をコンパイルして作成されたEAは
デコンパイル出来ません。
・著作権を守るためEAのデコンパイル防止対策としてMQLの仕様変更が実施されました。
・ネット上で『Decompiler ex4 to mq4 2018』の情報を見かけますが現在のEAは
デコンパイル出来ません
・時々、build600以前のEAに対するDecompilerを見かける事があります。

コメント

マーチン・ゲールさん

2018年08月04日 10:50

マーチン・ゲールです
おはようございます♪

色々と独断&偏見を述べさせて頂きました。
多少、みな様の参考になれば幸いです。

ありがとうございました。

これからもよろしくおねがいいたします。

atsuoさん

2018年08月03日 22:30

マーチン・ゲールさん、コメントありがとうございます。

>計算上、ロット数は同じなのに複製した合計の方が利益が増える傾向が
>出て来ました。

私は現在、0.01ロット単位売買のEAを4つ、常時稼働のPCで動作させていま
すが、通貨ペアは4種類で運用しています。
言われているように、同じ通貨ペアを複数同時に動かすのも面白そうですね。

毎週、過去6か月のSIMを行い、最適パラメータを求めていますが、期間が
1週間ずれると、振舞いが微妙に異なってきます。
複数個同時に流すと、合計値が平準化されてスムーズになるかもしれません。
例えが適当かどうか分りませんが、単気筒のエンジンよりも4気筒の方が動き
が滑らかで振動が少なくなるような感じでしょうか。

現在の売買の残玉が0になったら、タイミングを見て、試行を検討してみたい
と思います。

マーチン・ゲールさん

2018年08月03日 11:47

atsuoさん
コメントありがとうございます

EA運用面で利益を増やすノウハウの確立ですが
内容は大した事ないです、『何だそんな事』レベルです。

1、 単独EAを数個複製
例、一つのEAにロット数を0.1Lotと設定する場合、EAを5個複製して、
夫々0.02Lotとします。
計算上、ロット数は同じなのに複製した合計の方が利益が増える傾向が
出て来ました。

また、単独でロット数を0.15Lotに設定してEAを稼働させたら不具合が
発生したとします。
夫々0.03Lot×5個複製で稼働させると安定稼働する場合が多いです。

2、 単独口座を分割作成する

例、マーチン・ゲール証券から口座番号123456が開設されました。
  マーチン・ゲール証券なのでMGとして
  MG 123456_1
  MG 123456_2
  MG 123456_3
  MG 123456_4
  MG 123456_5

ハードディスク上に単独口座を5分割作成します。
MT4をインストールする時、表示画面で設定をクリックして
Program Files (x86)\MgFX MT4を
Program Files (x86)\MG 123456_1 MgFX MT4に
書き換えます。

単独口座が_5として見かけ上5口座開設されました。
かつて、複数のEAを同一口座で稼働させた結果、他のEAが別のEAを
強制的に決済させてしまう現象が発生しました。
そこで、単独口座の分割作成を考えました。

3、 証券会社に追加口座の申請を行う。
例、XM証券(海外証券会社、レバレッジ888)に追加口座を
  申請(合計8口座)してEAを400個稼働させました。
  EA1個:1通貨ペアなので400個がダイレクトドライブに
   なります。
   CPUに負担が掛かる為、PCをEA稼働専用にしたり、VPSの導入が
   考えられます。
   また、大変重要なのがEAその物に極めて高い安定性が求められます。
   そして、EAのLONG RUNテスト、混在テスト等を実施して上記した
   組み合わせを選択します。

4、 EA運用仕様書を作成
   例、リスク管理の為、1ヶ月毎に口座から出金処理(月末決算)
   経済指標発表前にEA稼働停止、もしくはEA稼働停止ソフト導入
   停電、インターネット接続不良の対応
   第三者による保守、管理

   文章では不充分で中々伝え切れないですネ!

atsuoさん

2018年08月02日 18:03

マーチン・ゲールさん、貴重な体験談の紹介ありがとうございます。

>自分の開発したEAについて運用面で利益を増やすノウハウが
>確立しているのでEAを出品して儲けるより自分自ら運用した方が
>儲かります。

つまり、
「昔は有料ソフトのデコンパイルにより、その中身を調べて勉強した
が、その結果、現在では自分なりの独自のEAを開発し、それで十分
ノウハウを確立した。 したがってデコンパイルは現在はもう必要ない。」

という趣旨ですね。 素晴らしい成果だと思います。
「月利」の定義にもよりますが、26~37.8%/月は、飛びぬけて良い
結果だと思います。

売買手法に関する話題には大変興味を持っているので、また是非教えて下さい。

マーチン・ゲールさん

2018年08月02日 17:05

Atsuoさん
コメントありがとうございます
Atsuoさんご指摘の『デコンパイルが主道でない』
私もこの考え方を支持します。

私にはデコンパイルされたSOURCE CODEを書き換えてEAを出品する発想が
ありません。
EA販売後のユーザーサポートが大変です!実に煩わしいです。

別の視点で私の体験談(会話レベル)をお話しします。
過去にFXオフ会に参加して2,3人から名刺をもらいました。
EAを販売したいと言うことです。
後日、オリジナルEAに『使用期間制限』、『パスワード制限』
『変数名のランダム化』等、プロテクトを掛けて3人に送付しました。

ひとりの人から
DEMO口座運用(1ヶ月)300万円→413.4万円(月利37.8%) 
実口座運用(1ヶ月)30万円→37.8万円(月利26%)
是非、販売させてもらいたい
販売価格は10万円で10万円×70%=7万円の儲け
以上のメールが来ました。
もうひとりの人からも販売価格は5万円で同じような内容の
メールが来ました

他方、ご存知だと思いますがシステムトレードのテラス(terrace)へ
EAの出品手続きを始めました。

同時にセミナーで知り合ったEA作成経験者にやはりEAを送付して
ユーザー目線と言う視点で感想を得ました。

その人は当然MQLを知ってますが送付したEAに関して
ネット上で昔からEA使用経験者やEA作成者等が
言いつがれている事を指摘して来ました

私はEA使用経験者やEA作成者等の多くの人が
間違いとは言わないまでも誤った認識を抱いている事を
感じました。

一般的にオシレター系テクニカルを用いたEAの運用結果も含め
理由の説明に煩わしさを覚えました。

結局、EAの販売は止めました。
ユーザーサポートがいやなのです
証券会社が絡んで、サーバーの事とか口座タイプの事とか
エラー対応、プログラムの書き換えなど面倒くさいです。
トンチンカンな質問、返金要求・・・・イヤです!

自分の開発したEAについて運用面で利益を増やすノウハウが
確立しているのでEAを出品して儲けるより自分自ら運用した方が
儲かります。

基本、私は裁量トレーダーなのでEA発売の発想が無いです。

atsuoさん

2018年08月02日 11:15

マーチン・ゲールさん、コメントありがとうございます。

MQL学習の為のデコンパイルというお話、分りました。

またメタボトレーダーさんの言われている
>「習うより慣れろ」といわれているように、MQL プログラミングを学ぶには、
>既成のものを解読・応用し、何度も試作を繰り返すのが近道

も、全くそのとおりだと思います。

私も過去、ソースが公開されている既成のプログラム記述を参考にして勉強になっ
たものが多くあります。 特にインジケータ等では、その傾向が強いですね。
ただ私の個人的考えですが、ソースを公開されていないものを逆コンパイルして参
考にするという考えには及びませんでした。

売買アルゴリズムはあくまでも個人的なもの。 それを実現する記述方法は、文法
書や解説書を見れば、それなりに分ってくる。 この板で質問しても良い。 ・・・・私の頭が所謂ガラパゴス的思考なのかも知れません。

マーチン・ゲールさん御自身も書かれているとおり、逆コンパイルはしにくくなっ
ているようですね。
逆コンパイルは「してほしくない、させたくない」というのが大きな時代の流れの
ように感じます。

ソースが開示されていないプログラムを逆コンパイルすることは、それを改変して
販売する等をしない限り、つまり個人で参考にする限りなら、多分違法にはならな
いのでしょうが、それが主道ではないような気もします。

メタボトレーダーさん

2018年08月01日 23:32

デコンパイルに関する話題をありがとうございます。

「習うより慣れろ」といわれているように、MQL プログラミングを学ぶには、既成のものを解読・応用し、何度も試作を繰り返すのが近道のような気がします。

ネットをくぐりますと、既成の indicator や EA を拾うことができます。
テクニカル分析指標ですと、こちらなど
https://www.abysse.co.jp/mt4/index.html

マーチン・ゲールさん

2018年08月01日 23:23

atsuoさん
こんばんは
最初の方で『多数のEA(自動売買プログラム)を買い求めました。』の
説明を記述をしましたが、当時MQLの知識など皆無に等しい状況でした。

そこで、市販のEAを全部デコンパイルしてmq4 SOURCE CODEを
MS-WORDに移してMQL学習の教科書としました。
SOURCE CODEにラインマーカーで色分けして勉強に励みました。

私がもっとうとしている中に『通り一辺倒の教科書的な発想はしない』が
あります。

市販されたEAのSOURCE CODEを解析すると色々アイデアが浮かんできます。
私も430個近くEAを作成しました。
今は秒速Scalping EAの自作がテーマです、デコンパイルはしていません

デコンパイル=MQL学習の為でした。

atsuoさん

2018年08月01日 21:39

マーチン・ゲールさん、情報ありがとうございます。

逆コンパイル(Decompile)は、現在のVERではできないという結論ですね。

以下私の私見ですが;

逆コンパイルされる目的は何でしょうか?
独自のアルゴリズムによる自分だけの売買プログラムの実現が目的なら、逆コンパイルに費やすエネルギーを、寧ろ新しいプログラム作成に向けられた方が建設的だと思いますが、如何でしょう。

逆コンパイルしたプログラムの一部を変更して使用しても、全体を理解しきれていないと、不安が残るように思います。

自分で作成したプログラムなら、構造の全てが分っていますから、例えbugがあったとしても100%安心できます。

プログラムの自作を続けていると、何とか「動くもの」になりますよ。