TradingViewPineCodeで「ブレイクアウトストラテジー」を初心者が10分でつくる

ブレークアウトを作ってみます。

追記:TradingViewでは遅延や通知無しが多発

ストラテジーの作成手順

自動化ロジックを見つける

自動化させるルール探します。

以前noteでアルマダ先生が公開していたブレークアウトを参考にして作ってみたいと思います。

高値更新でロング、安値更新でショートです。

決済はトレーリングストップです。

手法をストラテジー化させるには?

・エントリー

・決済

の2個のルールが必要

日本語で言語化する

まずは処理を日本語で書いていきましょう。

プログラミングコードへ書き起こす

あとはググりながら実装すれば完了です。

そいじゃやってきましょう。

管理人からのお願い

ブログ半年ぐらいやってますが、現在大赤字です。ブログ存続のためTradingViewの紹介リンクから申し込みしてくれると非常に助かります。

このブログのリンクから申し込むと友達紹介キャンペーンで30ドル貰える

自動化させるロジックを確認

高値更新でロング、安値更新でショート。

noteでは詳しく書いてあったような記憶があるのですが、忘れてしまいましたw

うろおぼえで思い出しながらつくります。まんま丸パクリだと怒られそうなので、簡易版である程度オリジナル要素を含みます。

  • 1分足
  • 前日高値と当日高値を比較して高いほうを指定
  • 終値が高値に到達
  • ロングでエントリー
  • 短めのスパンでトレーリングストップ
Pineエディタを起動
開く
ストラテジー
テンプレート入りのストラテジーがでてくる
保存
名前をつけて保存
準備完了です。
Ctrl + / でコメントアウト
8行目からコメントアウトしておきます。

まずはN期間の高値を計算します。1分足でローソク足の本数を1440分(1日分のローソク足本数に指定)

TradingViewでは指定した期間の高値をとりだす関数が用意されていますので使います。

ta.highest(1440)

これで今足から1440本遡った高値を取得することができました。

変数に計算結果を保存して、チャートに描画してみます。

toujitu_takane = ta.highest(1440)

チャート描画はplot関数です。

plot(toujitu_takane)

変数に代入

ta.highest(1440)の結果を 変数toujitu_takane に代入しています。

関数の引数(ひきすう)に変数をいれる

plot( ) のカッコの中は引数とよびます。カッコの中にいれたらデータをplotに渡せます。これで高値をplotに渡して、チャート画面に描画させます。

保存してチャートに追加する

チャートに表示させると、

青い線がでた

青い線が1440本中で一番高い数字です。

この線にタッチしたらロングなので、条件は

toujitu_takane <= high

当日高値 ≦ 現在のローソク足の高値

です。

これで高値ブレイクアウトでロングするまで完成です。

varip変数を使う

真打登場 varip を使って値を保存します。

varip entry_price = 0.0

エントリーしたらエントリーの価格を保存しておくように変数を用意しました。

TradingViewの変数は3つある

・ローソク足ごとに計算されて値がリセットされるのが「無印

・ローソク足ごとに計算されて値がリセットされないのが「var

・値動きごとに計算されて値がリセットされないのが「varip

  1. ロング条件が達成
  2. ポジション数が0

でロングエントリーと、エントリー価格の保存をします。closeは終値です。

varip変数に代入する

無印に値を代入するには「=」でよかったけど、varipは「:=」で代入します。

strategy.position_size == 0

TradingViewでは内部的にポジション数を記憶しているので、ポジション数が0の場合はエントリーします。

逆にポジション数が0より大きいとロングポジションを保有状態、0より小さいとショートポジションを保有している状態です。

損切決済をつくる

10Pipsで損切にします。

なので、

・エントリー価格 – 100Point > 現在のローソク足の安値

entry_price - 100 * syminfo.mintick > low

この中の

syminfo.mintick

は現在のシンボルの最小ティック値です。ドル円は0.1Pipsですので100を掛けると10Pipsです。

・もしも、ポジション数が0を超えている and エントリープライス – 100 Point > ローソク足の安値なら
・全決済

トレーリングストップをつくる

TradingViewにもトレーリングストップがあるのですが、使い方がいまいちよくわからないので自作します。

トレーリングストップの値を保存する変数を用意。

varip trail_price = 0.0

エントリーしたらリセットさせる。

・longConditionに「当日高値 <= 現在のローソク足の高値」の真偽値(true or false)を代入
・もしも、longConditionがtrue かつ ポジション数が0なら
・エントリー
・エントリー価格を保存
・トレーリングストップを0でリセット

エントリーからプラス10Pipsでトレーリングストップ発動。

トレーリングストップ変数trail_priceに終値 – 3Pipsを保存する。

・もしも、トレーリングプライスが0 and エントリープライス + 100 Point < ローソク足の高値なら
・トレーリングプライスにローソク足の高値 – 30Pointの値を代入する

利益がのびたら決済値をずらす

・もしも、トレーリングプライスが0ではない and トレーリングプライス + 30 Point < ローソク足の高値なら
・トレーリングプライスにローソク足の高値 – 30Pointの値を代入する

そして以下の条件で決済

  1. ポジション数が0を超えている(ロングポジションを保有)
  2. trail_priceが0.0じゃない(トレーリングストップ発動している)
  3. 終値がtrail_priceを下回った(ストップ発動)

・もしも、トレーリングプライスが0を超えている and トレーリングプライスが0ではない and トレーリングプライスがローソク足の安値以上
・全決済

ブレイクアウトストラテジーが完成!!!

コード全文

ブレイクアウト by hosono_p on TradingView.com

コードのリンクはこちらから

追記:TradingViewでは遅延や通知無しが多発

エラーが多発しまして、ちょっとTradingViewでは使えないみたいです。

ドル円 2022年07月28日

今日通知ONでTradingViewで稼働させてみたんですが、

通知されないことが多発

しました。

スキャルピング用のロジックはダメみたいです。

今度はMT4でリベンジします。

TradingViewのストラテジーが完成!

お疲れ様でした。

これでストラテジーが完成です。

まとめとおさらい

手法をストラテジー化させるには?

エントリーと決済ルールが必要。

TradingViewのメリット

・簡単にストラテジーが作成できる

TradingViewのデメリット

・有料アカウントが必須

・バックテストが簡易的でしょぼい

このブログは広告で運営費を捻出しています。

なので広告収入がないとそのうち消滅します。

なので紹介リンクから口座開設の協力をお願いいたします。

夏はビールがうまい!

このブログのリンクから申し込むと友達紹介キャンペーンで30ドル貰える
  • -
    コピー

この記事を書いた人

最近のコメント

  1. アバター
  2. アバター
  3. アバター
  4. アバター
  5. アバター

人気記事