Visual studio CodeでPine script拡張機能設定の仕方
下記の流れで設定できます。
1.Visual studio Codeをダウンロード&インストールする
↓
2.Visual studio Codeを起動する
↓
3.エクスプローラの「拡張機能」アイコンから「Pine」を検索する
↓
4.Pine script拡張機能をインストールする
↓
5.作業フォルダを作成&設定する
↓
6.拡張子を「.pine」とした新しいファイルを作成する
Pine script拡張機能(※取り込み済のためアンインストールと表記されてます)
Pine script編集画面
私のメインはセントラル短資です
TradingView スマホ版(無料)で足りないこと
有料版だとオーバースペックですし、安定して稼げてないのでTradingViewを無料の範囲でどう活用するかを照準にしてます。有料と無料のスペックの違いは公式サイトに掲載されてますが、私の主観で不足に感じているポイントを以下3項目、そしてどう対処しているか紹介します。
スマホ版(無料)で不足に感じていること
- 複数通貨、マルチタイムフレームチャートを表示できない
- Pineスクリプトを操作できない
- リプレイが日足単位しかできない
複数通貨、マルチタイムフレームを表示できない
複数の情報を1画面で捉えられると便利ですよね。でもFXに限れば、相場は通貨強弱で動いていて取引通貨ペアが限定されるので、Currency strengthインジケーター表示してアンテナを立てて対処できれば十分と感じてます。Currency strengthインジケーターの取り込み方については別の記事で紹介します。
Pineスクリプトを操作できない
個人的にTradingViewは唯一無二なPineスクリプトを活用してなんぼと思ってます。なので、Pineスクリプトを触る時はPCブラウザから操作します。PCで取り込んだスクリプトはスマホ版でも利用できます。時々PCで触れば十分カスタマイズできます。
リプレイが日足単位しかできない
私は4時間足から戦略を練るスタイルなので、無料版ではスマホでもPCでも日足でしかリプレイができない事に気づいた時はとてもショックを受けました。TradingViewを使い始めようとした動機も過去検証を行うためだったので。これを完全に補完できる手法はないですが、過去の日常に時間足を戻し、エントリーポイントを検証しつつ、チャートを現在方向に手動でスライドさせて過去検証をしてます。スマートではないですが、これでも過去検証は十分行えると思ってます。
私のメインはセントラル短資です
QQE signals
Pineスクリプトチュートリアルの解読を進める同時に、Trading Viewで公開されているインジケーターをいくつか拝見させてもらいました。その中で「QQE signals」これかなり使えるんじゃない?と感じました。以下、[1]インジケータ表示画像、[2]メリット・デメリット、[3]スクリプト、[4]スクリプト解釈を掲載します。もし[4]に間違いあったらゴメンナサイ(汗)
[1]画像(QQE signals)
[2-1]メリット(私の主観)
- Buy・Sellポイントが発生することで、エントリ方向を決めることができる
(ポジポジ病抑制、エントリ方向を明確にできる) - 他のオシレータ含め、複合的にエントリーや損切ポイントを考察できる
[2-2]デメリット(私の主観)
- エントリー頻度、エントリー精度はどの時間足を標準にするかで別物になる
(4時間足がエントリ頻度、エントリ精度のバランスが最も良さそうに思えた) - フラグ発生後エントリーになるため、実際のエントリールールは自身で決める必要がある
[3]スクリプト
//@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © colinmck study("QQE signals", overlay=true) RSI_Period = input(14, title='RSI Length') SF = input(5, title='RSI Smoothing') QQE = input(4.238, title='Fast QQE Factor') ThreshHold = input(10, title="Thresh-hold") src = close Wilders_Period = RSI_Period * 2 - 1 Rsi = rsi(src, RSI_Period) RsiMa = ema(Rsi, SF) AtrRsi = abs(RsiMa[1] - RsiMa) MaAtrRsi = ema(AtrRsi, Wilders_Period) dar = ema(MaAtrRsi, Wilders_Period) * QQE longband = 0.0 shortband = 0.0 trend = 0 DeltaFastAtrRsi = dar RSIndex = RsiMa newshortband = RSIndex + DeltaFastAtrRsi newlongband = RSIndex - DeltaFastAtrRsi longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband cross_1 = cross(longband[1], RSIndex) trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1) FastAtrRsiTL = trend == 1 ? longband : shortband // Find all the QQE Crosses QQExlong = 0 QQExlong := nz(QQExlong[1]) QQExshort = 0 QQExshort := nz(QQExshort[1]) QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0 QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0 //Conditions qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na // Plotting plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, transp=0, size=size.tiny) plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, transp=0, size=size.tiny) // Alerts alertcondition(qqeLong, title="Long", message="Long") alertcondition(qqeShort, title="Short", message="Short")
- [4]スクリプト解釈 スクリプトの内容からRSIベースのインジケータで間違いないでしょう。QQE factor「4.238」の根拠はフィボナッチの233/55でしょうか?RSI振幅を長期、短期の追っかけによる売買フラグオシレータの観点では目新しくないですが、トレンドを変動させる足が発生するまで売買フラグ精度に工夫が費やされているのだと思います。
スイング向きのインジケータで真価を発揮するように思えます。売買後の次のフラグが立つ時にはポジションが腐る可能性がるので、ポジションクローズポイントは自身のルールで決めた方が良さそうです。
私のメインはセントラル短資です
Trading View script公式マニュアル読み始めました
年末は寒くて家にこもってダラダラしちゃいますね。私もそんな一人ですが、今回の年末年始は自分自身に一つ課題を設定しました。Trading ViewのPine scriptの公開マニュアル(英文)を一通り目を通すことです。
https://www.tradingview.com/pine-script-docs/en/v4/index.html:embeded
私は平凡なサラリーマン投資家ですが、 振り返ると失敗ばかりのトレード生活です。
やはり、トレードスタイルが論理的で儲け続ける根拠が足りないことが弱いトコロと思ってます。自分のスタイルを見つめ直すため、新たなツールを有効に活用する手法を追及しようと思います。
フォルダ内csvファイル連続オープン、クローズ処理
特定フォルダ内csvファイルの連続オープン、クローズ処理に関する記事です
- 状況
特定フォルダ内csvファイル内のシート内データを取得したい - 実施
フォルダ絶対path取得
Dir()関数によるファイル名取得
Workbooks().openでCsvファイルオープン
Workbooks().closeでCsvファイルクローズ
保存なしdeファイルクローズ設定
- シート画像
- VBA記述
Sub test() Dim Folder, CsvFile, Name1, Name2, Name3, Name4 As String Name1 = ActiveWorkbook.Name Name2 = ActiveSheet.Name Folder = ActiveWorkbook.Path & "\test\" i = 1 CsvFile = Dir(Folder) Do If CsvFile = "" Then Exit Do End If Set WB = Workbooks.Open(Folder & CsvFile) Name3 = ActiveWorkbook.Name Name4 = ActiveSheet.Name Range(Cells(1, 1), Cells(1, 4)).Select Selection.Copy Workbooks(Name1).Sheets(Name2).Activate Cells(i, 1).Select ActiveSheet.Paste Workbooks(Name3).Sheets(Name4).Activate Application.CutCopyMode = False Workbooks(Name3).Close savechanges:=False CsvFile = Dir() i = i + 1 Loop End Sub
はてなブログについて
いままで何度かブログやってきました(ライブドアブログ、アメブロ)。結局続けられなかったのですが、はてなブログで凝りもせず再開しました。現時点でははてなブログに満足させて頂いております。小物ブロガーですが、ブログ執筆で快適と思っているポイントを記事にします。
PCなし、スマホだけで完結できるようになった
総じてこれに尽きると思います。PCと離れることで、SNSやスマホ経由の情報を活用しやすくなりました。そして記事する障壁が下がりました。
Bloothooth keyboard活用
スマホだとどうしても文字入力速さがタイピングに勝てない、長時間入力は疲れるので、状況に応じてBloothooth keyboardを活用することにしました。アイディアさえあれば文字入力は面倒くさくなくなりました。
はてなブログアプリツールで十分
世間の評判は知りませんが、私ははてなブログアプリツールで満足と感じてます。Markdownエディターをいくつか使用してみましたが、私にとってはアプリツール上で全てが完結できる方が楽との結論に至りました。
画像の挿入、SNS埋め込みとかも楽チンですよね。
アクティブブック、シート名取得
VBAで必須なアクティブブック、シート名取得と、記述の簡潔化の記事です
- 状況
現在開いているExcelbook名、sheet名を取得したい。
- 実施
ActiveWorkbook.Nameによる名前取得
ActiveSheet.Nameによる名前取得
Set定義によるbook名、sheet名記述簡潔化
シート画像
VBA記述
Sub test() Dim Name1, Name2 As String Dim Name3, Name4 As Worksheet Name1 = ActiveWorkbook.Name Name2 = ActiveSheet.Name Workbooks(Name1).Sheets(Name2).Cells(1, 1) = 1 Sheets(Name2).Cells(1, 1) = 1 Set Name3 = Workbooks(Name1).Sheets(Name2) Set Name4 = Sheets(Name2) Name3.Cells(2, 1) = 2 Name4.Cells(3, 1) = 3 End Sub