ゴゴジャン(FXON)のフォワード状況をLINEに通知する

2018年10月31日

メール

ゴゴジャンのEAを動かしていると、商品ページのフォワード結果がポジションを持っていないのに自分だけポジションを持っていることはありませんか?

しかも大きな含み損。。。

フォワードの結果と自分のポジションは同じにしておきたいと思う方もいるのではないでしょうか。

しかし、数十個のEAを動かしている状況で、わざわざ全ての商品ページにアクセスしてフォワード結果を確認するのは現実的ではありません。

そこで、フォワードの結果を自動で取得するプログラムを作成してみました。

フォワードとリアルが異なるのは悪いことなのか

理論上の話

理論上は、フォワードとリアルの結果が異なっていることは特に問題ないと考えられます。

「フォワードに無い利益」と「フォワードに無い損失」が同じような比率で発生するならば、リアルの結果は最終的にそのEAが出せるパフォーマンスとほぼ同等になるからです。

 

実際の話

私が過去に経験した話ですが、とあるEAが合計で300pips以上の含み損を抱えていました。

さすがに怖くなってきたので、他の人も同じ状況なのかと商品ページの「コミュニティ」を見に行きましたが、数日間コメントが無い状況でした。

次にフォワード結果を確認したところ、なんとノーポジションだったのです。

まもなくシステムの損切り価格となり、300pips以上を失いました。

この時はあまりリスク管理していなかったので、300pipsという大きな値になりましたが、その後も100pipsを超えるフォワードに無いポジションの損切りは何回かありました。

そこで考えたのですが、最初に書いた「理論上の話」で、以下の内容は本当にあっているのでしょうか?

「フォワードに無い利益」と「フォワードに無い損失」が同じような比率で発生するならば、リアルでの結果は最終的にはそのEAが出せるパフォーマンスとほぼ同等になるからです。

検証していませんし、フォワードはデモ口座ですし、真偽は誰にも分からないです。

ただ、私たちがフォワード結果を重要な情報の1つと考えているのは間違いありません。

そして、フォワードでポジションが無いにも関わらず、リアルが大きな含み損を抱えている場合に冷静な判断をすることはとても難しいです。

 

理論上がどうであろうと、「現在のリアルポジションとフォワードは同等なのか?」を把握しておくのは重要です。

把握しておけば、「異なっているから手動決済する。」、「放置する。」という判断が可能になります。

 

設計

大枠

ゴゴジャンの各EAのフォワードページから、「実績を更新中です。」というキーワードを引っ張りポジション数を把握します。

取得した結果、ポジションを保有していればLINEに通知します。

※サーバーへの負荷を極小にするため、アクセスする間隔は最短でも1時間に1回とします。

※「買いポジション」なのか「売りポジション」なのかは分かりません。

そこまで分かってしまうとEAを販売している意味もなくなってしまいますし、こちらの意図とも異なりますのでポジション数さえわかればOKです。

 

事前作業

LINEに通知するためには、事前にLINEのアクセストークンを取得する必要がありますので、持っていない方は以下を参考に取得しておきましょう。

[超簡単]LINE notify を使ってみる

 

プログラム

動かし方

ダウンロード

下記リンクからプログラムをダウンロードします。

GetFowardPosition_V1.01.zip

[2019/01/11追記]
ゴゴジャンのサイトが大幅に変更されたので、プログラムのバージョンアップを行いました。スクレイピングでWebサイトから情報を取得すると先方で変更があった場合にプログラムが動かなくなりますね。

 

ファイル配置

配置するPCは、MT4を動かしているPCで問題ないです。

ダウンロードしたZIPファイルから2つのファイルを取り出し、同じ階層に配置します。(配置場所はどこでも大丈夫です。)

 

設定ファイル(settings.json)の編集

settings.jsonをメモ帳やエディタで開きます。

各パラメタを自分用に変更します。

各パラメタの説明は以下となります。

項目名 説明
interval 何秒ごとにプログラムを実行するか記載します。
※3600秒(1時間)より小さい値を設定するとプログラム内で3600秒に強制的に変更されます。
私は10800秒(3時間)で設定しました。
token 事前に取得したLINEのアクセストークンを貼り付けてください。
line_url 固定値のまま利用してください。
base_gogo_url ゴゴジャンのフォワードページの基本になるURLです。
URLが変更されない限りは固定値で利用してください。
search_string ポジションを持った場合にフォワードページに表示される文字です。
変更が無い限りは固定値で利用してください。
※ea_id_list [“eaの名前”, ID]形式で必要なだけ入力します。
eaの名前は””のままにしておけば正式名称を取得してきますが、個人的につけたい場合は値を入れてください。
私は、長すぎるものを短縮名にしました。

[2019/01/11追記]
サイトの仕様が変わったので名前は取得できなくなりました。自身で適当な名称を付けるようにしてください。

※EAのIDについては、ゴゴジャンマイページの「ダウンロード商品」に一覧で表示されています。

[注意点1]
フォワード公開をしていないデータは取得することができません。(キャンペーンものなどに多い)

[注意点2]
セット販売ものもフォワードが無いので、例えば2個のセット販売であればそれぞれの個別EA販売ページから商品IDを取得する必要があります。

[2018/11/01追記]
メモ帳でsettings.jsonを保存すると、設定ファイルを読み込めなくなる不具合がありましたので、修正版をアップロードしました。

 

実行

実行ファイル(GetFowardPosition.exe)をダブルクリックします。

1行目・・・実行間隔に3600秒以下を設定した場合に表示されます。
2行目・・・処理が開始したことを示すログです。
3行目・・・上手く処理できなかったEAが表示されました。(キャンペーン系など)
4行目・・・処理が完了したことを示すログです。

コマンドプロンプト

1時間間隔で実行するようにしてテストをした結果です。

LINE通知

 

最後に

完全に自分用に作ったプログラムですが、もしかしたら需要があるかもしれないと考えて公開しました。

プログラムはPythonで書いたので、実行環境が無い場合を考えてEXE形式にしています。

プログラム自体の詳細は記載していませんが、機会があれば解説しようと思います。

 

自作EAに興味がある方は、以下もご覧ください。