【JForex】配信レートの小数部の桁数を取得する関数は、便利でもあり不便でもある、、、

FX注文時の利食い/損切り計算で必須となる、レート配信の小数部の桁数取得ですが、JForexの場合はPips計算に特化しています。
https://www.dukascopy.com/client/javadoc/
 
> Enum Instrument
>> int getPipScale()
   Returns decimal place count of one pip for the currency pair
>> double getPipValue()
   Returns value of one pip for this currency pair
 
Instrumentは通貨ペアを保持する列挙型です。
> public Instrument instrument = Instrument.USDJPY;
また、MQLとは違ってJavaの列挙型はクラスなので、メソッドを持っていたりします。
 
利食い/損切りをpipsで指定している場合、
> double takeProfitPips = 100.0;
> double takeProfitValue = takeProfitPips * instrument.getPipValue();
とすれば計算出来るので便利です。
うん、便利なのですが・・・
 
注文時のレート指定に有効桁数以上の数値が含まれる場合、エラーになることがあります。(MT4/MQLと同じですね)
 
例えばUSDJPYの場合、配信レートの小数部有効桁数は3桁です。
USDJPYの注文時に、例えば2進数演算の影響で 113.33300000001 など小数部が多くなったレートを指定するとサーバーがエラーを返す事があるので、有効桁数の丸め処理が必要になります。(MQLのNormalizeDouble関数相当)
しかし、USDJPYのinstrument.getPipScale()は2を返しますので、有効桁数としては使えません。
どこを探しても、小数部有効桁数を取得するメソッドがInstrumentにありません…
 
一応、インターフェースIFinancialInstrumentにgetTickScale()というメソッドが用意されているのですが、Instrumentから取得出来ないのは納得いかないです。
それに、IFinancialInstrumentをInstrumentにimplementsするとしても、結局メソッドは実装しなきゃならないし、、、面倒すぎる!
 
とりあえず試行錯誤したところ、IContextからIFinancialInstrumentProvider経由でIFinancialInstrumentへ繋げられるようなので、今はそれで我慢しています。
 
まぁ、気になると言えば、IContext.getFinancialInstrumentProvider()の説明が、
> NOTE: Under development
となっている所ですかね。知らんがなw
 
これで、MQLのDigits()相当の関数は実装できることが分かったのですが、ストラテジー実装までの道程は長いなぁ…
 
ソースコート(onStartして終わるストラテジー)
jforex_geiTickScale.png
 
実行結果
jforex_geiTickScale_result.png
 
※小数部の有効桁数を導き出すのに、
  > instrument.getPipScale() + 1;
 としているソースコートも見掛けました。
 FXのストラテジーとしては、この実装でも問題なさそうです。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

コメント

Secret

プロフィール

nekonote

Author:nekonote

EAを作るのが趣味になってしまったらしい。

あとマニアックな運用とかetc...その時の気分で書き殴る(?)
そんなブログ

※当ブログ記事へのリンクはご自由にどうぞ

 
運用は…fx-onのみんなのMT4に公開しているかも?
fx-on 通常会員ページ
fx-on 出品者ページ

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
ブログランキング
にほんブログ村 為替ブログ システムトレード 自作EA派へ





QRコード
QR
RSSリンクの表示
リンク
FX情報サイト
 優秀トレーダーの投資法をゲット!
FX投資情報コミュニティfx-on.com


国内MT4取扱会社
外為ファイネスト カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

アヴァトレード・ジャパン株式会社 カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

FOREX.com×タイアップキャンペーン☆Beatrice-07 FXTF×ForexSolidタイアップキャンペーン



自作EA紹介


EAフォワード集計結果
海外MT4業者
海外業者を選ぶ際は、まず金融庁の「注意喚起」を熟読して下さい。無登録業者で事故っても自己責任ですよ!
自分はゲムトレード&GEMFOREXに突撃してみましたw




自分もカコテンシリーズを幾つか出品しています。 運用結果でネタが集まれば時々記事にします。

ゲムトレードはEAの将来価値をリスクヘッジするには良い仕組みを提供していると思います。ただし本当に実力のあるEAはfx-on等から買った方が良いでしょう。
取引明細には現れませんがIBのような仕組みでゲムトレードへ報酬が渡っていますので、単一EAの長期運用ではデメリットが成績に現れると思われます。

※繰り返しますが海外業者でトラブっても自己責任です。お忘れなく!
FX専用VPS
レンタルサーバーなら使えるねっと



みんなのMT4
紫色:リアル口座
水色:デモ口座
ねこぱんち | fx-on.com
ねこぱんちMAXでも | fx-on.com
ねこのまえあし | fx-on.com
€$ XM demo | fx-on.com
£$ FxPro demo | fx-on.com
€¥ IFC Markets demo 2nd! | fx-on.com
£¥ IC Markets demo  | fx-on.com
$¥ MGK Global demo | fx-on.com
BigBoss demo AUDJPY | fx-on.com
€x LandFX demo | fx-on.com
KAKO10 iIchimoku リアル OANDA | fx-on.com
KAKO10 iIchimoku デモ FXTF | fx-on.com
KAKO10_iMA(H27.5~) | fx-on.com
KAKO10 iMA デモ Axiory(運用終了) | fx-on.com
KAKO10 iMA デモ Axiory新鯖 | fx-on.com
Ava demo iOsMA方向性スイング(運用終了) | fx-on.com
カコテン iOsMA (type DI) デモ Centrade | fx-on.com
カコテン iMomentum (type DI) デモ Arena | fx-on.com
瞬殺!!! NCSEC demo ※運用終了 | fx-on.com
GEMFOREX demo 新サーバーお試し ※破綻 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com