cTraderメジャーアップデートが来ました!
いや、というかなんか気づいたら5.0が来てました。
今回は興味深い機能がたくさん追加されていますので紹介いたします。
個人的に「これはいい!」と思ったものには★マークを付けときました。完全に独断と偏見ですが、ご参考までに。
cTrader5.0の新機能
★クラウドでcBotが実行できるようになりました
なんとクラウド環境でcBotが実行できるようになりました!
クラウドで実行するにはAlgoメニューのcBot一覧から使いたいcBotを選び「+インスタンスを追加」を選びます。
この画面で「クラウド」が選ばれた状態で、口座と通貨ペア、時間足、パラメータなどを設定して追加すると・・・
クラウドで起動する準備ができました。再生ボタンで自動売買をスタートできます。
ちなみに右側にはcTrader Copyで表示されるのとと同じようなROI曲線やグラフなどが表示されます。
これはcTraderで自動売買をしている方にはかなり大きなニュースではないでしょうか。
cTraderに限らずMT4などでも自動売買をするにはPCをつけっぱなしにしておかないといけないというのが面倒な点の一つで、ほとんどの方がVPSを使うなどで対応していたと思います。
今回のアップデートでcTraderでライトに自動売買を試してみるくらいであればVPS契約もPCつけっぱなしも不要になりました!
ただcBot10個までという制限はありますので、それ以上の数を使ってがっつり自動売買で運用している方はこれまで通りVPSを利用する方がよさそうです。
★プラグインが作成できるようになりました
まず、cBotやインジケーターを作成する機能はこれまでAutomateという名前だったのがAlgoと変更になりました。昔はcAlgoという名前だったのでなんか戻ってきた感がありますね。
そして、cBot,インジケーターのほかに「プラグイン」というものを作れるようになりました。
プラグインはcTrader自体の機能を拡張するようなプログラムです。
これまでもcBotやインジケーターでもある程度の機能拡張はできましたが、あくまでチャート単位で機能を拡張するのみのためcTrader本体の機能については触れない部分も多かったと思います。
プラグインではcBot等では触れなかった画面上部のツールバーや、画面下に表示するトレードウォッチ、画面右に表示するシンボルパネルに新しい機能を追加するといったとができるようになります。
下記がサンプルのプラグインを実行した状態です。ツールバーに見慣れないボタンが表示されてますが、こんな感じで新しいボタンを追加して好きな機能を割り当てることが可能です。
(あくまでボタン追加は一例です。ボタンなしのプラグインも作れます。)
プラグインについてはご要望があれば別途解説記事書きます。
ところで公式のページを見る限り、cBot, インジケーター, プラグインのことをまとめてアルゴリズムと呼んでいるようですね。
これ以降はそれにならうことにします。
アルゴリズムを実行可能なユーザーを指定できるようになりました
cBotやインジケーターを実行できるユーザーを指定できるようになりました。
左側一覧の見た目も少し変わり、このボタンからアルゴリズムのエクスポートができます。ビルドや複製などのこれまでのメニューは右クリックででるようになってます。
これで市販cBotで購入者だけ実行できるcBotが作りやすく・・・と思ったのですが、単にcTraderユーザー名を指定して、その人専用のcBotを作成する機能のようなので、今のところはまだ使いにくそうです。
新しいアルゴリズムがスムーズに開始できるようになりました
これまではcBotやインジケーターの.algoファイルをダブルクリックしてインストール、それを選んでチャート上に配置してから実行、という手順で開始してたと思います。
cTrader5.0では.algoファイルをダブルクリックした時点ですぐさま開始されるようになりました。
インジケーターはアクティブなチャートにすぐさま適用、cBotの場合は実行確認ウィンドウが出てそのまま実行可能、プラグインはそのまま有効化される、といった具合です。
これは人によってはちょっと余計なお世話かもしれませんが・・・まぁ開発中なんかはビルドしたらそのまま動作確認することが多いのでもしかしたら便利になるのかもしれません。
cBotの最適化機能にいくつか追加がありました
cBot最適化時の結果保存と読み込みができるようになり、また、すべての最適化パスの詳細を確認できるようになりました。
下位のパスで動きが気になる、でも詳細がない・・・なんてことたまにありましたから、これはありがたい人も多いと思います。
さらにTimeFrame型パラメータも最適化できるようになりました。これまでも稼働するTimeFrame自体は最適化対象だったのですが、パラメータに持ってる場合は固定だったんですよね。
この辺は最適化をばりばり回すcBot開発者にとってはうれしいアップデートではないでしょうか。
★アルゴリズムからチャート上のインジケーターを参照できるようになりました
他のアルゴリズムからチャート上に適用されてるインジケータのパラメータを変更したり、チャートに新たにインジケータを追加したりということができるようになりました。
ChartIndicatorsもしくはChart.Indicatorsから取得したり、名前指定で追加したりといったことが可能になっています。
インジケータで表示されているラインの太さや色を変えたりもできるようになっています。
・・・ただ、肝心のインジケーター値の取得のやり方がわかりません。
アップデート説明に「You can ceate acBot that will monitor the indicators added to the chart and trade depending on their movement(チャートに追加されたインジケーターを監視し、その動きに応じて取引するcBotを作成することができます)」とあるのでできそうなんですけど・・・
従来同様にcBot内で新たにインジケーターオブジェクトを作って値をとることはもちろんできるんですが、そーゆーことではないはず。
どなたかやりかたわかる方いましたら教えてくださいまし。
★アルゴリズムでcBotが起動可能になりました
アルゴリズムから別のcBotの起動や停止ができるようになりました。
インジケーターと似たような感じでChartRobotsもしくはChart.Robotsから既存のcBotを取得したり名前指定で追加、起動したりといったことができるようになっています。
自動売買をやってる方は複数のcBoitでポートフォリオを組んでるケースも多いと思います。
でもcBotが複数あるとそれぞれのcBotの停止基準や再開基準など一つ一つ手動で管理するのって結構手間ですよね。
今後はこの機能を使ってcBot管理用のcBotを作ることで、稼働中のcBotを管理することができるようになりました。
他にも例えば相場の状況判断だけをするインジケーターを用意して、状況により稼働するcBotを変えて自動売買させるようなこともできるようになりました。
自動売買の戦略の幅も広がりそうですね。
cBotで使っているインジケーターをチャートに表示できるようになりました
MT4では作成時の設定次第でEAで使ってるインジケーターを自動でチャートに表示させることができたのですが、cTraderではそのような機能がありませんでした。
そのため、自分のcBotを確認するときすら手動で内部で使ってるインジケーターをチャートに追加して・・・という作業が毎回必要でした。
今回のアップデートでcBotからインジケーターが追加できるようになっているため、cBot起動と同時に内部で使ってるインジケーターをチャートに表示させることができるようになりました。
cBot内でIndicatorsから作成したいインジケーターはデフォルトで自動で表示されるようになっています。
もし使ってるインジケーターを表示させたくないという場合はAddIndicatorsという属性をfalseに変更しましょう。
namespace cAlgo.Robots {
[Robot(AccessRights = AccessRights.None, AddIndicators = false)] // ←ここ
public class MyRobot : Robot {
[Parameter(DefaultValue = "Hello world!")]
インジケーターでトレードができるようになりました
インジケーターからエントリーや決済ができるようになりました。
トレードツール系を作っているとインジケーターのような使い勝手で、かつエントリー機能も持たせたい、というケースは多かったのでより便利なツールが作りやすくなりました。
もはや自動売買もインジケータでできちゃうじゃん!と思うかもしれませんが、インジケーターで自動売買はお勧めしません。
インジケーターからのエントリーでは最初のエントリー時にこのような確認ウィンドウがでます。(インジケーター適用時ではありません)
「許可」を押した時点でのエントリーとなるため、確認が遅れるとエントリータイミングがずれます。
なのでほったらかしでエントリーさせるような自動売買系は素直にcBotで作った方がよさそうですね。
おそらく「ボタンを押したらエントリー」みたいなトレードツール的なものを想定しているのだと思います。
また、インジケーターで自動売買させると起動してるのがわかりにくいという難点もあるため、自動売買はcBot、トレードツールとして使うものはインジケーターという作り分けがよいでしょう。
インジケーター線のパラメータが取得できるようになりました
どういうことかというと、ここで設定する線色や太さなど今まではインジケーター内から使うのが難しかったのです。
これが普通に取得できるようになったので、たとえば「インジケーター線の設定色と同じ色でラベルを追加」みたいなことが簡単にできるようになりました。
座標のピクセル変換が簡単にできるようになりました
今までは面倒な処理を書かなければできなかった、チャート上の時間、価格からクセル単位のチャート上相対座標x,yへの変換が簡単にできるようになりました。
ChartにYValueToY, YToYValueとTimeToX, XToTimeというメソッドが追加されています。
少し前のアップデートでボタンなどを価格と時間を指定して配置できるようになってましたが、微妙に挙動がおかしかったので、結局座標指定で配置してました。
このメソッド追加で座標指定とよりボタンなどの配置が制御しやすくなりましたね。
cBotを実行したままパラメータを変更できるようになりました
一度停止しないとパラメータは変えることができなかったのですが、cBotを止めなくても変更したら自動的に再起動するようになりました。
停止のひと手間が減るだけとはいえ、少し楽になるのはうれしいですね。
サンプルをもとにアルゴリズムが作成しやすくなりました
cBotやインジケーターを新規作成するときに、下記ウィンドウが出るようになりベースとなるテンプレートを選べるようになりました。
自分が作りたいものと似てそうなサンプルコードを選んでそれをもとに作成することができます。
あまり慣れてない人でもアルゴリズムが作りやすくなったと思います。
自分でテンプレートを登録出来たらなおよかったんですが、それはできなそうですね・・・
あと細かいところですが、新規作成したインジケーターが一覧の一番上に表示されるようになってるみたいです。
今まで一番下だったので、「新規」ボタンおしてからスクロールしていって選んで名前を変える、みたいなことが必要だったので、地味に改善されてます。
テンプレートは使わなくても全体的に新規作成時のフローがスムーズになってることを感じとれると思います。
WebSocketが簡単に使用できるようになりました
アルゴリズムで、WebSocketを使ってリアルタイムな情報を提供してくれるようなサービスとの連携がしやすくなりました。
今までもできなかったわけではありませんが、cTraderAPIで簡単にできるようになったというのがポイントです。
サンプルコードはcTrader公式のマニュアルをどうぞ。
さすがメジャーアップデート
新機能がもりだくさんで確認が大変でした。。。
中でもクラウドでの自動売買はうれしい方も多いのではないでしょうか。
とはいえ、それ以外はほぼ開発者向けの機能で一般ユーザーの方がすぐ恩恵受けられそうなものは少ない感じはありますね。
これから少しずつ新機能を利用したcBotやインジケーターが公開されていき、じわじわと使いやすくなってくると思います。
「この機能で誰かこんなツール作ってくれたらいいのになぁ」みたいな思いがあればぜひご要望フォームからお気軽にお送りください。
ajinoriの気が向いたら作るかもしれません。