2013年11月6日水曜日

タイムマネジメントとストラテジー③ ~ナンピンも上手に使えば安全~

さてさて、非建設的な批判議論はさておいて、今日は以前ご紹介して止まっていたナンピンの話の続きを書こうと思います。


TypeB君のエントリーからロスカットまでの時間と通常時のエントリーからイグジットまでの時間を比較したグラフがこれです。





このグラフから、エントリー後9分以上経ったらナンピンしてもそんなに危険じゃなさそうだということが分かりました。
今回は、実際にナンピンしたときとナンピンしなかったときで、どういったバックテストの違いがあるかを検証したのでご紹介します。

-------------------------------

最近色々とあったアイデアをどんどんTypeB君に追加したので、前回と多少ヴァージョンが違うことをご了承下さい。
前回はVer2.5、今回はVer2.8です。
でも、根本は変わってないんで問題ないと考えています。

まずは、ナンピンしなかったときの結果から。

Strategy Tester Report
TypeB_Ver2.8
通貨ペアUSDJPY (US Dollar vs Japanese Yen)
期間1分足(M1) 2008.01.02 10:01 - 2008.12.26 23:58 (2008.01.02 - 2008.12.27)
モデルEvery tick (the most precise method based on all available least timeframes)

Bars in test344137Ticks modelled3418710Modelling quality25.00%
Mismatched charts errors0




Initial deposit4000.00



Total net profit4027.94Gross profit17407.88Gross loss-13379.94
Profit factor1.30Expected payoff0.89

Absolute drawdown93.10Maximal drawdown512.94 (11.04%)Relative drawdown11.04% (512.94)

Total trades4525Short positions (won %)2320 (73.97%)Long positions (won %)2205 (73.70%)

Profit trades (% of total)3341 (73.83%)Loss trades (% of total)1184 (26.17%)
Largestprofit trade81.92loss trade-33.98
Averageprofit trade5.21loss trade-11.30
Maximumconsecutive wins (profit in money)25 (150.26)consecutive losses (loss in money)6 (-110.45)
Maximalconsecutive profit (count of wins)150.26 (25)consecutive loss (count of losses)-132.28 (5)
Averageconsecutive wins4consecutive losses1

これだけ見ると、あっそうって感じですよね。
そこで、Max(Relative) Drawdown(最大(相対)一時的損失額)とTotal Net Profit(最終的な損益)に注目してナンピンした場合のバックテスト結果をご覧下さい。

Strategy Tester Report
TypeB_Ver2.8
通貨ペアUSDJPY (US Dollar vs Japanese Yen)
期間1分足(M1) 2008.01.02 10:01 - 2008.12.26 23:58 (2008.01.02 - 2008.12.27)
モデルEvery tick (the most precise method based on all available least timeframes)

Bars in test344137Ticks modelled3418710Modelling quality25.00%
Mismatched charts errors0




Initial deposit4000.00



Total net profit4634.56Gross profit20296.79Gross loss-15662.23
Profit factor1.30Expected payoff0.91

Absolute drawdown160.93Maximal drawdown497.27 (10.56%)Relative drawdown10.56% (497.27)

Total trades5104Short positions (won %)2584 (73.65%)Long positions (won %)2520 (73.02%)

Profit trades (% of total)3743 (73.33%)Loss trades (% of total)1361 (26.67%)
Largestprofit trade81.92loss trade-33.98
Averageprofit trade5.42loss trade-11.51
Maximumconsecutive wins (profit in money)28 (192.17)consecutive losses (loss in money)7 (-98.63)
Maximalconsecutive profit (count of wins)192.17 (28)consecutive loss (count of losses)-163.36 (6)
Averageconsecutive wins4consecutive losses1


なんだYO!PF全然良くなって無いじゃん!!なんて言わないで下さい。
皆さんは高PFをたたき出すためにトレードしてるんじゃないですよね。
よりリスクを下げて、多くの収益を得るかを考えているはずです。

このナンピンは「ドローダウンを抑えて投資機会を増やし最終収益を増大させるもの」なんです。

どうですか??
ナンピンは危険だという方々、これでも本当にナンピンは危険だ、ナンピンを多用して勝ってる奴はファットテール部分の人間だと言えますか??

確かに資産を市場に晒すことはリスクです。
でも、投資の世界にいる限り、ポジションを建てなければ利益は得られません。
では、リスクを最小限に抑えるにはどうすればいいか。
それは統計学にお願いして、より安全な方法を教えてもらう他無いとTAは思うんです。

-------------------------------

最後はちょっと過激な締め方をしてしまって気を悪くされた方がいらっしゃったらごめんなさい。
ただ、噂やどの市場に通用するかもわかんないようなセオリーで勝手な思い込みをしてしまうと、戦略の幅が狭まります。
TAはFX暦半年も無い初心者です。
だからこそ先入観無く色んなことが考えられるのかもしれません。

この方法はTAの現在リアルで活躍中のEA「TypeB君」のデータであります。
そのため、皆さんが使って役に立つストラテジーではありません。
でも、本ストラテジーに至るまでのプロセスはすべてのEA、ひいては裁量派の方々の手法検討にも役立つはずと確信しています。

皆さんのバックテストのトラックレコードから、色んなストラテジーが生まれてくれればTAは幸せです。

2013年10月31日木曜日

タイムマネジメントとストラテジー② ~時間軸を掘り下げる~

今日は久しぶりに色んなEAのバックテスト結果を眺める時間が取れました。
やっぱリアルトレード始めると、なかなか研究の時間が取れなくなるんですよね。

ん!?

リアルトレードするために研究してるのに、研究の方が主体になってる!!

でも、ホントTAはバックテスト結果をExcelとか使ってコネコネするのが好きです。
データの隔たりを発見した瞬間といったらもう、それはそれはなかなかTAの嬉しさを皆さんに伝えるのが難しいです。

-------------------------------

今日は4次元EAのお話の第二弾!

 前回分はこちら→http://fx-system-trade.at.webry.info/200901/article_23.html

前回はリアルトレードの少ない結果から色んな特徴を調べました。

 ・損切りを3000円に入れてるので、3000円のところだけ値が跳ねています。
 ・-2100円のところだけスカスカしてます!
 ・時間が経つほど収益が悪くなってます。

こういった特徴を、何かしらストラテジーに生かせないかと考え、時間について色々調べることにしました。
まず、一つ大切なのは、リアルトレードの少ない結果から多くのことに判断を下しちゃダメです。
優位性を見つけるためにはもっとデータが必要です。

ということで、TypeB君の過去データを引っ張り出してきて集計しました。




こう見ると、やっぱりリアルトレードで見て取れた結果の隔たりは気のせいじゃなかったことが分かります。
とすると、ロスカットと他の成行のイグジットとは質が全然違うことになります。

さて、上で出したグラフですが、少し足りない情報があります。
「同一保持時間かつ同一損益だったトレードの数」がわかんないんです。
3次元グラフにすれば良かったんですが、見辛過ぎると思ってやめました。

そこで、ロスカット時のみに着目して集計してみました。
グラフにしたのが次の図です。


グラフの説明ですが、LossCut(30pips)を食らったトレードを保持時間1分毎で回数をグラフにしたのが棒グラフ、緑のラインが、0分からの累積分布です。
ピンクのラインが全トレードの保持時間を累積分布で表したグラフです。
このグラフ超重要です。
最初の8分はピンクのグラフと緑のグラフがクロスしてます。
つまり、TypeB君はエントリーしてから8分間ロスカットを食らう確率が高く、9分以上逆指値が刺さらなければ、ロスカットになる可能性が後退するっちゅうわけです。

ってことは、9分以降後にナンピンするといいことが起こりそうですね!

2013年10月23日水曜日

タイムマネジメントとストラテジー ~もう一つの次元に着目する!~




今日はポジションを立ててる時間のお話。

ストラテジーを考えるとき、まず大事なのは「エントリー」ですね。
最もストラテジーが簡単なEAは、エントリー時に指値と逆指値の両方を入れて、イグジットは相場に任せるというものです。
これを「一次元のEA」と呼ぶことにしましょう。

最もポピュラーなのは一次元のEAに「イグジット」のストラテジーを付けた「二次元のEA」ですよね。
TAが自分で作ってきたものも、他から拾ってきたものも二次元のEAが一番多いです。

しかし、魅力的なのは「ポジションサイジング」を組み込んだ三次元のEAですよね。
上手いことナンピンやピラミッティングをしたり、複利運用したりするとガンガン資産が増えるEAになったりします。
TAもロシアのサイト漁ったりして、「いいEA無いかなぁ」と中身見て三次元EAを勉強してます。

しかし、トレードでもう一つ大切なのにも拘らずあんまりEAを作るときには気にしないのが「時間」の概念です。
時間の概念もEAに取り込み、深みのある「四次元のEA」を作ることが勝利への近道だとTAは考えてます。

そのため、TAはちょくちょく時間に関する分析記事や便利EAをご紹介してきました。

  【夏・冬時間の考慮や時差を簡単に取り扱えるようにするインジケータ】
  http://fx-system-trade.at.webry.info/200812/article_4.html

  【時間によるボラティリティの違い】
  http://fx-system-trade.at.webry.info/200901/article_8.html


今回ご紹介するのは、エントリーしてからイグジットするまでの時間もEAのストラテジーに取り込めないかという試みです。

先ほどまで動かしてたTypeB君(TAがリアルで現在動かしているEAです。)のデータを確認してみましょう。


時間による収益のバラつきがこれで見て取れると思います。

 ・損切りを3000円に入れてるので、3000円のところだけ値が跳ねています。
 ・-2100円のところだけスカスカしてます!
 ・時間が経つほど収益が悪くなってます。

こういった特徴を、何かしらストラテジーに生かせないでしょうか。

2013年10月8日火曜日

3点チャージ(CustomIndicator付)

■3点チャージとは■
皆さん3点チャージという方法はご存知かと思います。
念のため、知らない方のために簡単に手法を書きます。

  こいつはIndicatorを3つ使って行う株の逆張り手法でWikipediaにも書いてある有名な手法です。
  エントリータイミングは

   ・RSIが30以下
   ・移動平均乖離率が-15%以下
   ・ボリュームレシオが30以下

  で買いです。(売りは70以上、+15%以上、70以上)

  要は売られすぎを判断する指標を3つの視点から見て、どう考えても売られすぎなら戻りが入るだろうという
  考えを元にエントリーする手法です。

今回はこの手法をFXに適用したらどうなるのかを確認します。



■手法について■

FXには3点チャージをそのまま適用できません。
そのため、今回は少し内容を変更します。

①移動平均乖離率について

FXは株価と違い移動平均から15%も乖離することはありません。
なので、どう評価すればいいか難しいところです。
そこで、以前ご紹介した偏差値を取る手法を適用します。
基準としては、偏差値が30以下のときを売られすぎ、70以上のときを買われすぎと判断することにします。
30~70とは「もし、母集団のサンプルの理論値が同一であるなら95%が収まる範囲」です。

②ボリュームレシオについて

FXは株と違い相対取引で各国さまざまな市場で取引されています。あちこちで取替えっこが行われている世界です。
投資銀行、ヘッジファンド、デリバティブ投資家、機関投資家、大手輸出入業者、インターバンク等、様々な人たちがロイター、CME通貨先物等を介して取替えっこしています。(これらをまとめてFX市場と呼ぶことにします。)
FX市場はあちこちの人たちがあちこちの場所で交換し合っている世界なので、全体の取引量について把握できている人はいません。
つまり、ボリュームが判らないのです。
(MetaTraderのPredefined variablesにはVolumeという項目があります。何を根拠にVolumeを決めているかは不明です)
そのため、ボリュームは今回評価しないことにします。


■エントリー、イグジットの手順について■

<エントリー>
①移動平均乖離率の偏差値(MA(21)の21分散を使用して求めます。)が30以下で買い、70以上で売り
②RSI(14)が30以下で買い、70以上で売り

①と②のアンド条件で判断

<イグジット>
①SMA(14)を跨いだら手仕舞い。
②RSI(14)が50を越えたら手仕舞い。

①と②のオア条件で判断

■使用通過と期間■


2006年1月~2008年11月
USDJPY


■結果■

まず、1時間足での結果です。

<1時間足>






なんとも残念な結果です。


PF       0.77
Payoff Ratio 55%
ドローダウン 26%
勝率      58%


これは長時間の足だとFXの場合、概してトレンドフォローの方が勝てるからだと分析しています。


では短時間足だとうまく行くのでしょうか。
以下に15分足、5分足、1分足の結果を掲載します。

<15分足>




PF       0.96
Payoff Ratio 54%
ドローダウン 15%
勝率      64%


勝率の改善によりPFが大幅改善しています。
この調子だと足をさらに短くすればうまく行くか!?


<5分足>




PF       0.93
Payoff Ratio 48%
ドローダウン 35%
勝率      66%


更なる勝率の改善はありませんでした。
Payoff Ratioの低下は短い足にしたことによるスプレッドの影響と考えられます。


<1分足>





PF       0.8
Payoff Ratio 45%
ドローダウン 93%
勝率      64%


勝率はほぼ変わりませんでした。
取引回数が5分足のときより増えたので傷口(ドローダウン)が広がっています。



■考察■

結局勝てる手法ではありませんでした。
しかし、ここでひとつ注目すべきところがあります。
1分足のトレードでは2006年1月~2006年9月までの半年間、約5000回ものトレードで勝ち続けている期間があります。

<1分足(200601-200609)>



PF       2.01
Payoff Ratio 53%
ドローダウン 1.11%
勝率      79%


つまり、3点チャージ手法を今回紹介した方法(乖離率を偏差値で評価し、ボリュームを見ない方法)に変更しても充分機能する場合があると言えるのではないでしょうか。


しかし、その後は一方的に負け続けています。


<1分足(200610-200811)>




PF       0.59
Payoff Ratio 42%
ドローダウン 78.99%
勝率      58%


どうやらこの手法は2006年9月までは非常に有功だったようです。
なぜでしょうか。

まずは長期トレンドをみてみましょう。
日足を掲載します。



特に特徴が無いことがわかりました。
どうやら大きな流れの変化による影響ではないようです。

ロングとショートで特徴が無いかも確認しました。
    勝っている時  負けているとき
Long    79%  →  58%
Short   78%  →  57%

どうやらロングでもショートでも2006年10月以降勝てなくなったようです。



困りました。
どうやってこのブログを締めればいいか分からなくなってきました。
とりあえず頑張ってまとめてみます。

①3点チャージ手法を今回紹介した方法(乖離率を偏差値で評価し、ボリュームを見ない方法)に変更しても
  充分機能する場合がある
②5000回のトレード結果で圧勝している手法でも負けるときが来る。
③ということはスキャルピングシステムは随時システムを変えていかなければいけないということか。

ということにしておきます。

最後に今回使用したIndicatorをブリーフケースに入れておきます。
http://briefcase.yahoo.co.jp/bc/ta_system_trade/lst?.dir=/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/9b0a&.order=&.view=l&.src=bc&.done=http%3a//briefcase.yahoo.co.jp/

2013年9月25日水曜日

アービトラージ(EA付)

アービトラージをご存知でしょうか。
日本語で言えば、裁定取引と訳します。

無リスクで差益を得るものというイメージが強いですが、正確には3つの種類のスプレッド取引に分類されます。

・現先スプレッド
・限月間スプレッド
・市場間スプレッド

「現先スプレッド」
現物とオプションとの価格差を使い、高いものを売って安いものを買う取引をいいます。
現物が安いときプットを買うの?コールを売るの?とかいう議論とか色々とあるのですがFXとは関係無いのでサラッといきます。

「限月間スプレッド」
これは現物先物の限月間で線形回帰するという理論を元に高いものを売って安いものを買うという手法です。
この話もFXとは関係無いのでサラッと流します。

「市場間スプレッド」
異なる市場で同一商品に価格差が生じている場合高いものを売って安いものを買う取引をいいます。
こいつは色々とFXでも出来ます。

・異なるFX会社間でのスプレッド取引1

FX会社に複数契約している方は色んな会社のストリーミング画面を見てみてください。
実にバラバラなことに気付いて頂けるでしょうか。
ここで安いものを買って高いものを売ります。
スプレッドを考慮して10pips以上差がついたときに売買するようにして下さい。


・異なるFX会社間でのスプレッド取引2

FX会社間でスワップ金利に差があることをご存知でしょうか。
私のオススメ証券会社の【ヒロセ通商】のスワップ金利と121証券のスワップ金利は全く異なります。
ヒロセ通商はスワップ金利がAsk、Bid共に大きく、121証券はAsk、Bid共に小さいです。
そこで、ヒロセ通商ではロングでポジションを持ち、121証券ではショートでポジションを持ちます。
すると、ロングとショートでポジションを持つため為替差損は生じません。
そのため、スワップ金利の差の分だけ利益が出るというわけです。
スワップ金利は毎日変動するので、金利差が生じているときだけポジションを持ってそれ以外の日はお休みです。


・異なる相場間でのスプレッド取引1

例えばUSD/JPYについて考えてみます。
「USD/JPYを買うこと」と「EUR/JPYを買ってEUR/USDを売ること」はポジションサイズを揃えると全く一緒です。
しかし、市場をよーく見ているとたまにここにズレが生じます。
そういうとこを見つけてささーっと売買するのです。

これ、実はうまく行くのではと思っています。
まだ検証していないので、EA作って検証しようと思っています。


・異なる相場間でのスプレッド取引2

USD/JPYはGBP/JPYとある程度の相関性があります。
この相関性を利用して取引を行う手法があります。
今まで上で述べてきた方法はどれも必ず勝てる方法ですが、このスプレッド取引は必勝法ではありません。

USD/JPYとGBP/JPYに相関性があるように見える理由は、GBP/USDの変動幅に比べUSD/JPYやGBP/JPYが小さいからです。
USD/JPYのロングとGBP/JPYのショートを同時に保持する行為はGBP/USDのショートを保持するのとほぼ同義です。


しかし、USD/JPYとGBP/JPYの差が急に広がったり急に狭まった後にある程度補正する動きをすることもまた本当です。
有名な為替鬼さんのブログでも「タイミングチャート」という名でこれについて紹介しています。
自分もMT4で作ってみたので使ってみたい方は

http://briefcase.yahoo.co.jp/bc/ta_system_trade/lst?.dir=/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/9b0a&.order=&.view=l&.src=bc&.done=http%3a//briefcase.yahoo.co.jp/

からダウンロードしてみて下さい。

2013年9月3日火曜日

ダメEAを向上させよう!~最適化よりもストラテジー向上~ (1)

昨日はADP雇用統計に参加してたので、あんまり検証を行ってません。
TAの収支はというと、、、
せっかく25pips取れたのに往復ビンタしようとしてバチバチビンタを喰らってしまいました。

結局4pipsしか残ってないし。。。
身の程知らずもいいところですねぇ。

-------------------------------

今日はEAを磨く方法を考えたいと思います。

EA作ってて、みなさんは「作っても作っても勝てるEAばっかりだよー!」という方はいらっしゃるでしょうか。
そりゃむりだ!って話ですよね。
もしいらっしゃったら、失礼しました!!声を大にして謝ります。
そしてTAに作り方を教えて下さい(笑

では、どうやってEAを磨いていけばいいのでしょうか。
パラメータの最適化?
まだやっちゃダメでしょ。
パラメータの最適化は最後の最後ですよ。
ストラテジーを向上させた方がナンボもいいEAが作れます!(TAの乏しい経験上ですが…)

では、ストラテジーはどう向上すればいいのでしょうか。

ここで、サイコロの話をちょっと。

あなたはサイコロを5回振りました。
そうしたら、1が5連続出ました。
次にもう一回サイコロを振ったときの1が出る確率はどんなモンでしょう??

高校のときに何だかよく聞いた台詞ですね!!
答えは「1/6」。
サイコロのどの目が出るかは「同様に確からしい」から答えは1/6になります。
「同様に確からしい」懐かしい響きですねぇ。
「独立事象」なんていったりもするし、簡単に「等確率」なんて言ったりもします。

言葉なんてどうでもいいですね、はい。
ストラテジーを向上させる、とは、「同様に確からし」くないポイントを見つけて、お得な動きをEAに入れ込むこと、とTAは解釈してます。

今回も例としてTypeB君に登場してもらいましょう。
(固定0.1ロットでトレードした結果を使用して以降お話します。)

さてさて、このTypeB君、15$以上勝ったトレードが393回あって、その次のトレードで平均-1.02$負けてるんです。
さっきのサイコロの話とおんなじように考えると、15$以上勝ったトレードの後でも、それ以下でも次の勝ち額の期待値は一緒のはずです。
でも、平均で-1.02$負けてるんです。
ちなみに、393回のトレードの平均なので、合計402.65$負けてます。
全12037トレードでの利益が5666.77$なので、実に7%に当ります。

ちょっと整理しましょう。



トレード回数トータル利益平均利益
全トレード120375666.770.47
15$以上勝ち後のトレード393-402.65-1.02


これを見て、「7%の損失を削れるんだったらカットカット!」と言って削ってしまうんだったら今日のコラムの意味が無いってもんです。
こいつがまぐれで抽出されたものなのか、それとも、「同様に確からしくない」優位性を持っているポイ ントを抽出できているのかを確認してから削らなければ、「パラメータの最適化」をしているのと大して変わらず、投資用語の世界で言う「カーブフィッティン グ」って奴になってしまいかねません。

じゃあ、このフィルターが優位性があるのかの検証をしてみましょう。

今回はt検定って奴を使ってみます。
もしかしたら、理学部物理学科や薬学部を出てる人なんかは聞いたことがあるかもしれません。
今日も理屈は抜きに計算の仕方を見てみましょう。

15$以上勝ち後のトレードと、全トレードからそのトレードを除いたものとについて、トレード回数、平均、分散を求めます。
分散ってなんだよっ!って方は、EXCELでVARPっていう関数を使ってトレードごとの収支を選択してもらえれば簡単に計算できます。


トレード回数平均分散
全トレードから下のトレードを除いたもの(A)116440.5213217106.9980
15$以上勝ち後のトレード(B)393-1.024555312.8947



で、「推定母分散」って奴を求めます。
まぁ、あんまり気にせず式に数字を突っ込んじゃってください。

   V = {(A)の分散 × (A)のトレード回数 + (B)の分散 × (B)のトレード回数}
      / {(A)のトレード回数 + (B)のトレード回数 - 2}

今回の場合を計算してみると、113.7393になります。

次に、検定の名前にも付いている「t」って奴を求めます。

   t = {(A)の平均 - (B)の平均}/√[V × {(1/(A)のトレード回数) + (1/(B)のトレード回数)}]

ルートの計算はEXCELでSQRTってのを使えばOKです。
今回の場合を計算してみると、2.826232となりました。

なんだか意味わかんねーよ!意味教えろよ!!って方は「t検定」とググッってみてもらえれば詳しく載ってるサイトがいっぱいありますよ♪

じゃあ、最後に求めた数字の意味を見てみましょう。

  http://www2.vmas.kitasato-u.ac.jp/lecture0/statistics/ttest.pdf

を見てみてください。
なんだか数字が並んでますね。
表の自由度fってところをまず見るのですが、これは「全トレード回数-2」のところを見ます。
今回のケースでは、トレード回数が1万回を越えているので、無限大のところを見てみます。
表を横に見てみると、

0.10.050.020.01
1.6451.9602.3262.576


となっています。
上の、0.1とか0.05とかが「このフィルターが意味無いであろう確率」です。
さっき求めたtより下の数字の方が大きいところを見ればその確率が分かります。
今回のケースでは、t=2.826232だったので、0.01の列の2.576を超えているため、「15$以上取れた後にシグナルが発生してもトレードをしないというフィルターが意味無い確率は1%以下」ということになります。

ということは、余程のことが無い限り、このフィルターは機能すると確率論的に言えるわけです。

-------------------------------

今日のブログは数字ばっかりで数字嫌いな方はちょっとつまらなかったかもしれませんが、TAの趣味と言うことでお許し下さい。
というか、数字が嫌いならチャート見れないっしょ!と言ってみたり。

今日も気付いたらこんな時間!
せっかくいいフィルターができたのにEA組むのはちょっとシンドイです。
明日は結婚お祝いの飲み会だしなぁ。
雇用統計の日に飲み会を入れること自体「FX本気でやってんの!?」って突っ込まれそうです。
なんもいえねーっ!

2013年8月28日水曜日

ロスカットの真実




FXで勝率100%で勝てる方法があります。
知りたいですか?
そんな凄い方法がなんとあるんです。

それは…

レバレッジ1倍で買値より高くなるまで絶対に売らない事です。

そこの「バカヤロウ!」って言ってブログを閉じようとしてるあなた!!
今日はとっておきの事を書くんでそれだけは御勘弁を。。



さて、上がるまで意地でもポジればいいのに為替の世界の人は損切ります。
なぜでしょう?
色んな本やブログに大事だからと書いてあるからでしょうか?
何となくでしょうか?

明確にその事に触れている人があまりにも少ないので今日はこんなタイトルのブログを書いてみました。




------------------------

ロスカットしなければいけない理由は2つあります。
一つは「①投資効率を高めるため」、もう一つは「②稀に来る暴落時に大切な投資資金を守るため」です。

「①投資効率を高める」
以外に明確にこれを説明している人は少ないです。

思惑に反し逆行したとき、チャラになるまでずっとポジションを持ち続けるより、手放して別エントリーした方が儲かるなら積極的に切った方が儲かります。
このロスカットの最適値は自分の投資手法の期待値を知らなければ分かりません。
自分の手法の優位性を知るにはある程度のバックテストの知識か豊富な経験が必要になります。


「②稀に来る暴落時に大切な投資資金を守るため」
これについてはよく説明をしている人がいます。
でも、私のブログではもうちょっと違う角度でこのことに触れてみたいと思います。

問題です!!
1000日に一度の確率で暴落する相場があったとします。
あなたはその暴落相場に耐えられるだけの資金を持っていなかったとします。
あなたが破産する確率が一番高いのは何回目のトレードでしょう??



答えは…
なんと1回目です。
下のグラフをご覧下さい。



初体験で資産が吹き飛んでも全然おかしくないですね。

では次に、この人はどのくらいトレードすると確実に破産するのでしょうか。



4603回目には99%破産します。
特に注目すべきは257回トレードすれば4人に1人破産するということです。
1000分の1って当たらないようで当たりやすいんですね。

「相場のボラティリティがどうの」とか、「このインジケータがシグナルを出したときのPFがどうの」とか関係ありません。
貴方が破産したくないのであれば、相場に応じた損切り額を設定するのではなく、投資資金に応じた損切りをしなければいけません

ここ、超重要です。
なぜかというと、手持ち資金から導き出されるロスカットの幅(上で言う②のロスカット)と貴方の投資手法から導き出されるロスカット幅(上で言う①のロスカット)で「手を出してよい通貨」と「手を出してはいけない通貨」が決まるからです。

以下例を挙げて説明します。
条件:
  ・100pipsほどドローダウンしたら深刻な損害になる位しか手持ち資金が無い
  ・勝率は70%以上と非常に高いが極稀に5連敗するような手法を使って投資を実施
  ・手法の期待値を得るためには、ボリバン2σ程度に損切りラインを入れなければいけない手法である

この場合、破産したくないのであれば、ロスカットは100/5=20pips以内にしなければいけません。
一方、ポン円5分足やポンドル5分足などでは足の平均は20pipsをゆうに超えます。
つまり、ポン円、ポンドルはこの条件の場合手を出してはいけないということになります。
ドル円でもNY Timeではボリバン2σが20pips以内にならないのではないでしょうか。

ということは、この条件では、ドル円のJP Timeくらいしか投資してはいけないということになります。

つまり、①のロスカットが②のロスカットを超えているような手法と通貨の組み合わせを使った投資は、言ってみれば「おこちゃまはお金貯めてからまた来ようね!」と相場に言われているようなものです。
商品先物や原油で破産する人が多いのはこのルールを守っていないからです。

------------------------
最後に-その1

本日スイングトレード派の方に、「理屈は分かっていても、週明けの大きな窓に当たったらどうすればいいか」という質問を頂きました。

この場合のリスク管理法を2つほど。
中東相場というのはご存知でしょうか。土日でも開いているマーケットです。
下記URLを日曜の夜に見てみてください。普通に相場が動いています。
http://fx.flockfox.com/
事前に中東相場が大きく動いていた場合は翌日朝から大荒れなヨカンです。
次の日の目覚ましは早めにセットしましょう。
※中東相場の小幅な値動きは無視してください。流動性が低い相場だから参考になりません。

また、世界で相場が開いている以上取引も可能です。
oanda等では日曜も取引ができます。
そのため、oandaを使えば週明けリスクはほぼ皆無です。
oandaをあまり使いたくない方は、一応oandaの口座だけ持っておき、ピンチの時だけ休日に証券会社間両建てにしてしまえば良いです。
窓が解消したときに両建てを解除して下さい。


最後に-その2

私のブログのお気に入り書籍欄に載せている「タートルズ流投資の魔術」にはATR14を使用したリスク管理手法が詳細に載っています。
私のこの理論はカーティスの理論を応用したものです。
ホントにカーティス先生様様です。

2013年8月19日月曜日

トレンドフォローの限界

Turtles Breakout Systemとは、投資集団「タートルズ」が使用していた順張り系の手法です。

時は1983年、リチャードデニスという400ドルを数十億ドルにまで増やした投資家と数学者であり投資家であるウィリアムエッグハートが賭けをしました。
金を持ってるオジサン達がした賭けの内容とは、「優秀なトレーダーは育成できるか」というものです。
リチャードデニスは育成できるといい、ウィリアムエッグハートは出来ないといいました。

ここからが凄いところ。
リチャードデニスはウォール・ストリート・ジャーナルでトレーダーを募集し、23人の投資集団を作り彼らに100万ドルを渡してトレードさせました。

さて、その結果は…
その後の全米商品投資顧問業者ランクの上位は常にタートルズで埋め尽くされるようになりました。
そんな彼らの手法というのがTurtles Breakout System(ドンチャンブレークアウトとも言う)です。

手法は簡単、20日ボックスを上抜いたら買い、10日ボックスを下抜いたら手仕舞う(売りから入る場合はその逆)というものでした。
さてさて、ではこの手法はFXでも通用するのでしょうか。

ドル円Every Tickで確認しました。
 ・20日間の最高値を更新したら買う。
 ・10日間の最安値を更新したら売る。
  (売りから入る場合はその逆)
 ・その他の戦略は一切無し
 ・2005年1月~2008年10月31日



一応勝ってますね。
PF1.45ですが実に3年間近く負けており、2007年12月7日にようやくプラスになっています。
サブプライム様様ですね。

では次に世界で一番取引が多いEURUSDです。


これまた一応勝っています。
2006年12月15日より安定して勝っています。
この頃からの上昇トレンドに乗って利益を上げ、サブプライム下げで利益を上乗せしている感じです。

つまり、この手法はトレンド相場にむちゃくちゃ強く、ボックス相場(レンジ相場)にむちゃくちゃ弱いわけです。

試しに、トレンドが大きいので有名なGBPJPYで確認しましょう。


2007年1月からぐんぐん利益を伸ばしてPF2.07を達成しています。
しかし、トレンドが無い2005年~2006年は全く利益が出ていません。

ついでに、、トレンドといえば!!ということで、OILでも確認です(FXと関係なくてすみません)。
2007年7月20日からしかデータが無かったので、このデータで検証です。


やっぱりすごいですね!!ガンガン稼いでPF5越え!!
勝率も70%を越えています。

じゃあボックス相場の通貨ではどうでしょうか。
ボラティリティが小さいことで有名な(地域が近いため)EURGBPで検証です。


最悪ですね。PF0.41です。
最近の稼ぎ時相場でも負け続けています。



さてさて、話は長くなりましたが、私がこの検証から言いたかったのは、「ドンチャンをトレンドが出やすい通貨で使用しよう!」ではなく、トレンドフォローには限界があるということです。

相場には3つの形態があり、常勝するためにはこの3つに対応しないといけません。

 ・上げ相場
 ・下げ相場
 ・ボックス相場

今後GBPJPYがずっと値動きの激しい通貨である保障はありません。
そのため、上げ相場、下げ相場、そしてボックス相場どの場面でも勝てるシステムを作らないといけないということです。

そのためにも「現在がボックス相場であるかどうか」をシステムに判別させることが非常に重要になります。
残念ながらボックス相場であるかどうかを判別するインジケータはなかなか世の中にありません。
(ADXの下り坂をボックス相場と取る、という考え方もあるようですが…)

そのため、今後ボックス相場の判別方法をご紹介していけたらと思っています。

2013年2月1日金曜日

リアルトレードに耐えられるプログラムの作り方


今日はフォワードテスト結果詳細を報告しようと思っていたのですが、色々とちょこちょこ改良!?する度にバグがあり余り満足に売り買いされていなかったため、代わりにリアルトレードに耐えられるプログラムにはどのような機能が必要かについて話したいと思います。

バックテストは何度もした事あるけどリアルマネーをEAに任せたこと無いよ!という方は必見です。

さてさて、リアルトレードとバックテストとの大きな違いってどのようなところにあるのでしょうか。
TAもあまりEAにリアルマネーを任せたことが無いので、このブログで答えを完璧には出せないと思いますが、大きく以下の2つの点がバックテストと異なると思っています。

  ・スプレッドが時間によって変わる可能性がある。
  ・約定しない可能性がある。(スベる可能性がある)

また、トレード技術問題以外に以下の問題があると思っています。

  ・PCから離れたときちゃんと動いているかが気になる。
  ・プログラムを遠隔で動かしたい。

これらの問題はバックテストをやっているときには全く気になりませんが、リアルマネーを任せるにはクリアしておかないといけない問題です。

では、順を追って解説していきましょう。

■スプレッドについて

 こいつは一番切実な問題です。
 バックテスト結果はこのスプレッドに基づいているからです。

 スプレッドが1pips違うと1000回のトレードで結果が1000pips変わります。
 トレードで1000pips抜くのがどれ位大変かは裁量トレーダーの方ならよーく分かるはずです。
 1000pipsと言ったら、最小売買単位でも利益が10万円変わります。
 どれだけスプレッドに気を使わなければいけないかお分かりでしょうか。

 では、MT4でスプレッドを確認するAPIをご紹介しましょう。

  int MarketInfo("USDJPY",MODE_SPREAD)

 これを使ってエントリーするかしないかを判断すれば、スプレッドが広がっているときの無駄なトレードが省けます。
 私は121証券を使っているので、上APIが2以上を返してきた場合はエントリーを行わないようプログラムして
 います。

■約定拒否について
 
 こいつも結構切実な問題です。
 バックテストならあんなにサラッと100万通貨とか買えてたのにリアルは全然だめだぁなんてことが多々あります。
 こいつの方がスプレッド問題より解決が難しいです。

 まず、エントリーについてですが、2つの方法があります。
 一つが、OrderSendをループにすることです。
 私のプログラムを抜粋します。

  while(res == -1) {
   Print(OptLots);
   res = OrderSend(Symbol(),OP_BUY ,OptLots,Ask,1,Ask - Stop * Point,PL,"TwoPointCharge",MAGIC,0,Red);
   Counter++;
   if(Counter > 10 && Email) {
    SendMail("Error Information.","TwoPointCharge is Hang Up in Open routain(buy).");
    return(0);
   }
  }

 こんな感じです。
 とりあえずガンガンループを回してある程度約定しなかった場合ループを抜けるようにプログラミングしています。

 なお、OrderSend関数はOrderに失敗したときは-1を返し、成功すればチケット番号(注文番号)を返します。

 もうひとつの方法は1回トライであきらめてしまう方法です。
 そっちの方が理論値通り動いてくれていいのかも、とも思っています。

 もっと切実なのがエグジットの時の約定拒否です。
 損切りのときに約定拒否が続いたら大変です。
 そのため、私は以下のようにプログラムしています。

  while(res == false) {
   RefreshRates();
   res = OrderClose(OrderTicket(),OrderLots(),Ask,1,White);
   Counter++;
   if(Counter > 20 && Email) {
    SendMail("Error Information.","TwoPointCharge is Hang Up in Open routain(sell).");
    return(0);
   }
  }

 エントリー時と違ってポジションと言う名のリスクを抱えているのでどうしても決済したいところです。
 そのため、RefreshRates()とOrderCloseをループさせて意地でも決済してしまおうというプログラムにしています。

■EAの動きを遠隔で知る方法

 常時PCに張り付かなくて済むように携帯にメールを送信させましょう。
 メールの送信はMT4で機能を整備してくれているので簡単です。
 MT4上で「ツール→オプション→E-メール」と辿ってみてください。



 ここで、SMTPと送信元、送信先を設定したら、次にEAのコード中に

 SendMail("Error Information.","TwoPointCharge is Hang Up in Open routain(sell).");

 などと、書くだけです。
 なお、第一引数が題名、第二引数が本文です。

■遠隔からEAを操りたい

 こいつをやるにはリモートデスクトップを使うくらいしか方法が無いです。
 これを使うにはXP Professionalが必要です。(Vistaの事はわかりません。ごめんなさい。)

 システムのプロパティの「リモート」タブから、リモートデスクトップ接続を許可して下さい。
 遠隔でログインする予定のPC(大抵の方は会社のPCなどでしょうか。)から、
 
  「スタート→プログラム→アクセサリ→通信→リモートデスクトップ」
 
 と選択して、IPを入力すれば接続できるはずです。

 でも、こういうやり方はオススメしません。
 なぜなら、投資資金をリアルに扱っているPCが簡単にリモートからアクセスできること自体非常にリスクだから
 です。
 なので、どうしても緊急でPCに触りたい場合は午後休を取りましょう!(笑

-------------------------------

さてさて、今回のリアルトレードに耐えられるプログラムの作り方はどうだったでしょうか。
意外にこういう記事を書いている人がいないんですよね。
こういう記事が無いってことは皆さん結構リアルでEAを動かしていないってことなんですかね。
もしそうならEAを使った売買はまだまだエッジがあるのかなと一安心してみたり。

2013年1月29日火曜日

TAのブログで使われる用語の説明

先日「このブログの専門用語の意味が分からん」とご指摘頂いたので、今日は為替の必須用語とシストレに出てくる用語をご説明したいと思います。

■ポジション
 買い建てあるいは売り建ての持ち高のこと。

■ロング
 基軸の通貨のこと。
 USDJPYを新規で買った場合「ドル円のロングポジションを保有した」などといいます。

■ショート
 基軸でない通貨のこと。
 USDJPYを新規で売った場合「ドル円のショートポジションを保有した」などといいます。

■エントリー
 新規でポジションを建てること。

■イグジット
 ポジションを決済すること。

■スリッページ
 注文価格と約定価格との差の許容値。
 為替売買をインターネットで行っている以上注文時と約定時に誤差が生まれる。
 この誤差の許容値がスリッページである。小さくするほど約定しにくくなる。

■ストップロス、ロスカット、損切り
 許容できない金額まで含み損が膨らんだとき決済すること。

■テイクプロフィット、利食い
 含み益を持ったポジションを決済し利益確定させること。

■ナンピン、難平
 含み損が出ている時に買い増すこと。平均約定レートを下げる効果がある。
 例えば100円でドル円をロングを新規に保持した後に99円になった場合、100円になるまでは含み損が出る
 ことになる。しかし、99円で再度ロングポジションを追加で建てた場合、平均約定レートは99.5円になる。
 すなわち、99.5円まで円安になればトントンになるのである。
 しかし、含み損があるときに追加投資するとレバレッジが高くなりやすいので注意が必要である。

■ピラミッティング
 含み益が出ている時に買い増すこと。トレンドに乗ったときに高額な利益を得られる。
 但し、高値掴みになってしまうことが多く、検証した結果の期待値が高い場合で無いと失敗することが多いため
 注意が必要。

■ポジションサイジング
 レバレッジやナンピン、ピラミッティング等ポジションの数を調整する手法をいう。
 すなわち、資産管理のことである。

■ストラテジー
 エントリー手法、イグジット手法、ポジションサイジングのワンセットをいう。
 エントリー、イグジットの手法として有名なものに、「ゴールデンクロス」、「タートルズブレークアウト」、
 「3点チャージ」等がある。
 ポジションサイジングの手法として有名なものに「マーチンゲール手法」等がある。

■勝率
 そのままの意味。損大利小にすれば簡単に勝率が上がるので、高ければいいというものではない。

■プロフィットファクター(PF)
 総利益額÷総損失額
 PFが高いストラテジーは回数をこなせばこなすほど儲かることになる。
 逆にPFが高くても余り売買出来ないストラテジーではあまり儲からないことになる。

■ペイオフレシオ
 平均利益÷平均損失
 損小利大のストラテジーかどうかを測る指標。
 これと勝率が高ければ破産しにくいストラテジーなので、レバレッジを大きく効かせられる。

■最大ドローダウン
 最大累積損失額÷最高口座残高
 ストラテジーの最大リスクを測る指標。これが小さいほど安全なストラテジーであると言える。



その他、たまに出てくる用語

■標準偏差
 データのバラつきを表す確率論の用語。
 x1~xnのデータの場合、

 √{(x1-ave)^2+…+(x-ave)^2}
 (aveはx1~xnの平均)

 で求められる。

■偏差値
 学生の成績の良し悪しにも用いられている値で、データがどれだけ他の値より飛びぬけて良い/悪いを判断する
 指標。

 10 × (xi - ave)/(標準偏差) + 50

 で求められる。
 50は平均値と同一のデータを表し、70以上、30以下は全体の上位/下位5%を表す。

■大数の法則
 確率論の法則で、回数を増やすほど理論確率通りに物事は落ち着いていくというもの。

■区間推定
 確率論の理論で、実確率が理論確率に比べどれだけばらつくかを推定するもの。

■t検定
 確率論を用いた検定方法で、ある状況と、もう一つのある状況が確率論的に異なる状況なのか、それともそうとは
 いえないのかを判定する検定方法。
 よく、新発売の製品の満足度アンケートなんかで、2つの商品の評価を比較したりするのに使われる。

■χ二乗検定
 確率論を用いた検定方法で、ある状況と、もう一つのある状況が確率論的に異なる状況なのか、それともそうとは
 いえないのかを判定する検定方法。
 よく、新薬の効能が従来品と新商品とで比較して優位性があるかどうかを判定するときに用いられる。

■プロスペクト理論
 どういう領域の理論なのか不明なのですが、「行動ファイナンス理論」のひとつで、 「得の領域では
 低い確率を高く見積もり、損の領域では高い確率を低く見積もることで、損失を利益より過大に見積もって
 しまう」という理論です。
 誤解を恐れずに言えば、人間は負けるのが嫌いなので利食いはすぐしてしまうが、損切りはなかなかできない
 と言い換えることができます。


追加した方がいい用語が出てきたら、新しくブログを建てるのではなくこのページを更新していこうと思います。

2013年1月15日火曜日

MetaTrader4の使い方(3)


今回は何かEAを提供したいなと思い、取引履歴を表示するEAを作成しました。
EA(Expert Adviser)初心者の方は使い方を下のほうにつけておいたのでご覧下さい。

■概要

まずはどんなもんなのかごらん頂きましょう。








このように取引履歴をプロットすることができます。


■インポートする取引履歴について

インポートする取引履歴ですが、

  Buy/Sell , Entry Rate , Entry Time , Exit Rate , Exit Time

の順にカンマ区切りCSVで読み込ませてください。


なお、ファイルは

 MetaTraderフォルダ\experts\files

におくと読み込んでくれます。


■パラメータについて

①FileName = ""
  必ず設定しないといけないパラメータです。
  ファイルの名前を入力してください。

②Delimiter = ","
  csvファイルの区切り文字を入力します。

③InputGMT = 9
  インポートするファイルのグリニッジ標準時間との誤差です。
  私はクリック証券を使っているので、GMT=+9(東京)としています。

④InputSummerTime = false
  インポートするファイルの時間がサマータイムを採用している国の時間かどうかのフラグです。
  日本はサマータイムを採用していないのでfalseとしています。


⑤InputUS_SummerTime = false
  インポートするファイルがサマータイムを採用している国の時間で書かれている場合、ニューヨーク式の
  サマータイムかヨーロッパ式のサマータイムかを設定するフラグです。
  ヨーロッパ式のサマータイムを採用している場合はfalseに設定してください。
  なお、InputSummerTime=falseとしている場合は無視します。

⑥MT4GMT = 9
  インポートするMT4で採用されているグリニッジ標準時間との誤差です。
  私は121証券のMT4を使っているので+9にしています。
  ODLなら0、FXDDやAlpariなら+2を入れてください。

⑦MT4SummerTime = false
  インポートするMT4でサマータイムを採用しているかどうかのフラグです。
  私は121証券のMT4を使っているのでfalseにしています。
  ODLならfalse、FXDDやAlpariならtrueを入れてください。

⑧MT4US_SummerTime = false
  MT4がサマータイムを採用している場合のみ設定の必要があるパラメータです。
  ニューヨーク式のサマータイムかヨーロッパ式のサマータイムかを設定します。
  ヨーロッパ式のサマータイムを採用している場合はfalseに設定してください。
  FXDDならtrue、Alphariならfalseを設定してください。

⑨LineWidth = 1
  エントリーポイントとイグジットポイントをつなぐ線の太さです。
  オススメはデフォルト。

⑩EntryArrowStyle = 5
  エントリーポイントをどのように表示するかを設定します。
  http://googolyenfx.blog18.fc2.com/blog-entry-73.html
  をご覧下さい。
  (googolyenさんまた掲載させて頂きました。いつもありがとうございます。)

⑪ExitArrowStyle = 5
  イグジットポイントをどのように表示するかを設定します。
  http://googolyenfx.blog18.fc2.com/blog-entry-73.html
  をご覧下さい。
  (googolyenさんまた掲載させて頂きました。いつもありがとうございます。)

⑫ArrowSize = 2
  エントリーポイントとイグジットポイントの表示サイズを設定します。


■EAのダウンロード

  EAを添付します。
  ファイルストレージを持っていないので、「mq4」拡張子を「jpg」拡張子に変換して下に添付してあります。
  私が使っているウェブリブログはjpg画像ならアップできるからです。
  右クリックでダウンロードした後、拡張子を「jpg」から「mq4」に書き換えて使ってください。

画像



■EAの使い方

  まず、C:\Program FilesにあるMetaTraderのフォルダを開いてください。



  この中のExpertフォルダを開くと以下のようになっています。



  ダウンロードしたファイルをコンパイルします。
  MT4上で「F4」キーを押してください。
  下のような画面(Meta Editorといいます)が開きます。



  Navigaterウィンドウが\メタトレーダのフォルダ\Expertと連動しています。
  もし表示されていなければNavigaterウィンドウ表示ボタンを押してください。(①)
  Navigaterウィンドウから先ほどおいたファイルをダブルクリックで開いてください。(②)
  開いたらコンパイルします。(③)

  そうするとMeta Trader上にEAが出来上がります。









丸印の部分をダブルクリックしてみましょう。
  下のようなウィンドウが開きます。



  自動売買プログラムの場合は「Allow Live Trading」にチェックを入れましょう。
  但し、リアル口座の場合は自動売買がスタートしてしまうので細心の注意を払って下さい。
  でも口座なら気にすることなくポチッとしておきましょう。
  なお、私が今回公開しているEAは自動売買システムじゃないので関係ないです。

  次に「パラメータの入力」タブを開いてパラメータを設定しましょう。


  私のEAの場合は「FileName」というパラメータにインポートするファイル名を入力しないといけないので
  ファイル名を記入して下さい。

  OKを押してちょっとだけチャートを触ると取引履歴がプロットされます。

  もし表示されない方はチャート右上のマークを確認してみてください。
  下の図のように「×」が表示されていませんか?


  もし表示されていたらツールバー上のExpert Adviserというボタンを押してください。





  すると以下のような表示に変わります。


  これでうまくいくはずです。

2013年1月10日木曜日

さて、今回は以前記載したMetaTraderの使い方第二弾です。今回はIndicatorの使い方について書いてみようと思います。

MetaTraderでは、他社のトレード用ツールと同様Indicatorを表示させることができます。





結構様々なIndicatorがあるため、これだけでも結構重宝します。
移動平均やストキャス、MACDなどどのツールでも付いているものから、一目均衡、DMI、ATR等が付いていたり、株では付いてるけどFXでは珍しいWilliam's Percent Range等もあります。

しかし、MetaTraderの本当に便利なところは、このIndicator自体を作れるところです。
WEBを検索するといろんな人が本当にいろんなインジケータを作っているのでそれを拾ってくるだけでインジケータが無限に増えます。
それを探してきて自分であれこれ駆使して使ってみるとシステムトレードの幅が広がります。

拾ってくる方法はここでは特に触れませんが、拾ってきたIndicatorの使い方をご紹介します。

①.mq4若しくは.ex4ファイルを
C:\Program Files\MetaTrader 4\experts\indicators
に置く。

②.mq4ファイルの場合コンパイルしないといけません。
  mq4ファイルをダブルクリックしてMetaEditorを開きます。
  右のNavigatorウィンドウから拾ってきたmq4ファイルを選択して開き、コンパイルします。


③MetaTraderの方のNavigatorウィンドウからCustom Indicatorを選択し、その中からダウンロードしたインジケータ
  を選択します。



さて、コンパイルするときにファイルを見るとc言語のようなもので書かれていることがわかると思います。
正確にはmeta languageという言語で書かれていますが、c言語の派生語なのでcがわかる方は問題なく取り組めると思います。
ちょこちょこっと直せば自分色のインジケータにどんどん加工することができます。
ただ、meta language独特の関数や変数については、英語のヘルプだと読むのが大変なので下記サイトが大変便利です。