
FX・CFD証拠金計算ツールのメンテナンスを行いました。
経緯
当ツールはXMから最新データを5分毎に取得し、DBに登録するスクリプトを稼働させています。
細かい経緯はさておき、今までのメンテナンスでリスクなどを考慮した結果としてスクリプトが二つに派生してしまい、そのスクリプトが平行稼働している状態でした。
サーバー関連には詳しくないので、具体的な問題はわからないままなのですが、ある時期を境に大量のスクリプトエラーが発生するようになっており、数日間スクリプトが落ちていることに気づかないことがありました。
これを機にスクリプトを直すことを決めたのですが、派生しているスクリプトを一本化するにあたり、またスクリプトの修正が必要になるわけです。
XMに仮想通貨の商品も増えたことですし、今まで計算不具合を抱えていたCFD計算ツールもついでに直してしまおうと思ったのが事の経緯となります。
主な修正内容
サーバーサイド
- 平行稼働していたスクリプトを一本化しました。
- 不要なスクリプトの稼働を停止させませた。
スクリプトを一本化した事によって、今まで多発していたスクリプトのエラーは現段階でおきていません。
ツールサイド
- 停止させたスクリプトによる影響をなくすため「余力に応じたロット計算ツール」の内部構造を変更しました。
- CFD証拠金計算ツールに仮想通貨を追加しました。
- CFD証拠金計算ツールの計算不具合を一部修正しました。
- CFD証拠金計算ツールのコードを今後のメンテナンスを考慮し大幅に変更しました。
- FX証拠金計算ツールのコードはCFD計算ツールとほぼ同じものを使っているので計算ロジックなどを合わせて修正しました。
簡単に言うと、「余力に応じたロット計算ツール」が停止させたスクリプトが更新するDBのデータを参照していたので、参照するDBを切り替えて、それに応じた修正を一部行いました。
今回の修正はCFD証拠金計算ツールがメインになります。
まず、XMで扱える仮想通貨を追加しました。
これにより、従来の計算式に当てはまらない部分が出てきましたので、汎用性を維持するために既存ロジックを大幅に改修することになります。
合わせて既存バグ部分であった計算間違いなどを一部修正しました。
元々、FX証拠金計算ツールがメインツールで、CFD計算ツールは応用して作ったツールなんですが微妙に内容が異なっています。
今後のメンテナンス性を考えるとベースのロジックは基本的に同じものにしておきたいので、どちらかに手を加えるとその内容を両方に反映させるメンテナンスをずっと繰り返しています。
ですので、CFD計算ツールに施した修正をFX証拠金計算ツールのほうにも施した次第であります。
既存と大きな変更点
次のようにUIを変更しました。
基本的に従来と似たような感じではありますが、「ペア情報」の欄を追加しています。

FXの場合、1ロットは10万通貨で固定できるのですが、CFDは商品毎に全部違うので個別の情報を持たす必要があります。
今までは契約サイズとティック単位をコードに埋め込んでいたのですが、これをDBから参照するように変更しました。
ついでに1PIPSの価値も追加しています。
下手にデータを加工させると不具合を生むだけですし、受け取ったデータをそのまま使うのが安全です。
1ロットが基準なのであれば1ロットで考えれば良いだけの話ではないのかと思いましたが、1ロットの内訳がわからなくなるだろうから1ロットの契約サイズを追加しました。
上記の修正をCFD計算ツールに施しているので、併せてFX証拠金計算ツールのほうにもロジックを共通化させたため、FX計算ツールでも1ロット単位で計算することになりました。
お詫び
FXで普段扱うロット数は人それぞれでしょうが、今まで1万通貨単位で入力計算していたものが1ロット単位になってしまい、今までの慣れしたんでくれていた人にはご不便をおかけすることになります。
1万通貨は0.1で入力しなくてはいけませんので、入力の手間が増えてしまいます。
微妙な手間がストレスになることも理解しているつもりですが、数年先にコードを見たときに共通化させていないコードを見たときに、自分が混乱するとおもいますので、ロジックを共通化させて頂いています。
今回の修正は大幅な修正ですので、予期しない不具合が生まれるかもしれません。
おかしいと思うことは遠慮なく連絡くださいますと、助かります。
今後ともよろしくお願いします。