先日、FXの裁量トレードに複利運用を導入する件で、JForex向けのサポートツールを黙々と製作中です。
以前作成したプログラムのソースコードを流用しまくっているので、ここ2日程で殆どが出来上がっているのですが、ちょっと壁にぶち当たっています。
いざ、ライブ口座でツールを起動すると、結構な確率で初期化に失敗する。
困るのが、2種類のエラーで落ちていて、落ちたり落ちなかったりもするから、どうしたものか。
ConcurrentModificationException…どこで起きてんのこれ?
確かにライブ稼働では、プログラム中のいろいろな部分が非同期で動くので、作りが甘いとぐにゃっと落ちるかもしれないけど、このバグを潰すのはしんどい。。。。
早く実践投入できるように、何とかしたいと思う今日この頃。
。。。今日はEAを止めすぎたな〜。もったいな〜。。。。
– 追加更新 —
問題を克服した。
古典的なprintf作戦を使い、エラーになっている箇所を特定。
今回は、”7″の前の処理に問題があった。
スタートアップの段階では、失敗する可能性のある処理だったみたい。
2秒ごとの値洗い処理をするところに後ろ倒しした。
修正以来、プログラムのスタートアップで落ちることはなくなった。
【システム概要】
・他通貨同時稼働に対応(予算を1まとめにして取り扱える)
・その時点の成績も加味した、複利計算によるトレードロットにて常に発注する
・ワンクリック発注対応
・ポジションクローズは、各チャートウィンドウの通貨ペアを対象とし、かつ当該プログラムから発注された注文のみを操作する
・ポジションオープンは、各通貨ペアで1ポジのみ。逃げのナンピンをさせない仕様。
・チャートウィジェットには、数秒間隔で次のトレードロットと、現在の成績(円単位ですると気が散るので、初期予算に対する%)を随時表示する
・使用するテクニカル指標は、プログラム開始時に自動追加する(ソースコードに切り込み)
※試しにライブ口座で、1トレード実施。0.26%儲かった。EUR/USDとAUD/USDのチャートウィジェットで同じ成績(ROI)を表示できている
口座残高を全額使ったロット計算はせず、プログラム開始時に割り当て予算、掛け率、T/PやS/Lを設定し、そのリスク範囲内でロットを調整します。
さらに、日々の成績集計の作業負荷を軽減する為、トレード結果をCSVファイルで出力するようにもした。
そんでもって、各トレードのクローズ時点(本当は時間を少し後ろにずらしたいけど)でチャートもキャプチャする。
ソースコードは、かなりやっつけ気味。。。
よし、ここまで来たら、後は相場に挑み続けるのみ!!