![見出し画像](https://assets.st-note.com/production/uploads/images/77071176/rectangle_large_type_2_fe3e8658c9f6ebc6f566bd0359fac80d.png?width=1200)
移動平均3における各時間足の反転タイミングをエンベロープで視認してみた
ヘッダーの通りです。
ちょっと何言ってるかはよくわかりませんでしたが、できるだけ言語化できるようにしてみます。
いさおさんの許可はとっていません。
兎にも角にもエンベロープを出してみる
そうそう。エンベロープの期間3。
— BTCイーサ子ちゃん@仮想通貨JD@stepn (@coin_order) April 23, 2022
別に50でも100でもいいけどブレ無くすなら3かなみたいな気がする
判定に使用する条件は
・MA(期間:3)
・エンベロープ(閾値指定:なし)
この条件から
・各時間足の反転タイミングを探る(?)
というものらしい。
ので、さっそくエンベロープを出してみる。
既存のものを出してもいいのだけど、せっかくなので1から書いてみる。
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lasthopelonger
//@version=5
indicator("Isao Envelope",overlay=true)
ma_length = input(3,"MA length")
width = input(1.00,"band width(%)")
ma = ta.sma(hl2,ma_length)
h = ma + (ma*width/100)
l = ma - (ma*width/100)
ma_p = plot(ma,color=color.black)
h_p = plot(h,color=color.white)
l_p = plot(l,color=color.white)
ma_length(MAの期間)
width(エンベロープの幅)
ma(SMAを使用)
![](https://assets.st-note.com/img/1650775645762-sF7aNROn4K.png?width=1200)
上記設定で15分足に出すとこんな感じになる。
なるほど、ちょっとそれらしいものができているではないか。
これをMAをあーだこーだしてMTFでいい感じにパラメーターを設定して何本か表示させると有料級なインジができそうだけどそれはまた別のお話。
デフォルトの幅は1%なので15分足だとそれっぽいものの、では時間足を変えるとどうなるかと言えば
![](https://assets.st-note.com/img/1650775970536-1B9ijOpG4J.png?width=1200)
日足だとこうなる。
当然だが日足のボラティリティ>15分足のボラティリティのため、1%のままでは日足では使い物にならない。
では逆に日足にマッチしそうな幅を15分足まで持ってきてみよう。
![](https://assets.st-note.com/img/1650776099637-nOvuYE4FZw.png?width=1200)
とりあえず10%にしてみた。日足はなかなかよさそうな感じではないか。
![](https://assets.st-note.com/img/1650776159918-m4xA2pKYkF.png?width=1200)
15分足だと今度は広すぎる。
15分足約3本以内に10%の上昇/下落が来ない限り永遠にタッチすることのないただの飾り線だ。
というわけで、バンド自体の幅に関しては固定値では如何ともしがたいので一旦この部分は保留にして、MAの方向性自体をチェックしてみよう。
見やすいように色変化をつけてみる。
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lasthopelonger
//@version=5
indicator("Isao Envelope",overlay=true)
ma_length = input(3,"MA length")
width = input(1.00,"band width(%)")
ma = ta.sma(hl2,ma_length)
h = ma + (ma*width/100)
l = ma - (ma*width/100)
color_set = ma>ma[1]?color.green:color.red
ma_p = plot(ma,color=color_set)
h_p = plot(h,color=color_set)
l_p = plot(l,color=color_set)
color_set(色変化の条件設定:1本前のMAの位置より高ければ緑、それ以外=同値か低ければ赤)
この価格帯で同値になることはかなり少ないので今は問題ないだろう。
期間3という設定上、ローソクに重なって色がかなり見づらくなるのでバンドにも色をつけておいた。
![](https://assets.st-note.com/img/1650881714821-Lmv6zk85E4.png?width=1200)
なるほど。
とりあえずここまでで3MAのメリットとデメリットを出しておこう。
メリット
・反応速度がとてつもなく早い。
遅くとも陰線3本あればしっかり反転判定されるのは初動をとらえるには十分な速さだ。
デメリット
・早すぎて細かい値動きに翻弄されてノイズになる。
基準が3MA1本前より上か下かで判定しているのも仇になっている。
ほならね、アプローチ変えてみましょうかと
そもそもエンベロープが固定ボラティリティの値幅で動くかどうかを見るものなので、トレンド判定には使用できないと判断し一旦置いておいて、MAのみという条件縛りで見てみる。
というわけでストラテジー化してみるよ。
MAの上下のみという条件で一旦トレンドの判定をしてみる。
これに関しては比較的単純。
以前の移動平均線の検証記事からコードを拝借。
コピペする際は例によってストラテジー部分のインデントがズレる可能性あるので各自修正してください。
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lasthopelonger
strategy("PO strategy-Alpha", overlay=true)
//inputs
src = input(close,type=input.source,title="ベース")
ma_switch = input("SMA",options=["EMA","SMA"],title="EMA or SMA")
show_ma2 = input(false,"MA2の表示")
show_ma3 = input(false,"MA3の表示")
ma1 = input(3, "MA1 期間")
ma1_c = ma_switch=="EMA"? ema(src, ma1):(ma_switch=="SMA"? sma(src, ma1):na)
ma1_p = plot(ma1_c, color=(ma1_c>ma1_c[1])?color.green:(ma1_c<ma1_c[1]?color.red:color.gray), title="EMA1")
if ma1_c[1]>ma1_c[2]
strategy.entry("B1",strategy.long)
if ma1_c[1]<ma1_c[2]
strategy.entry("S1",strategy.short)
![](https://assets.st-note.com/img/1651252928478-VDk8CtZSsq.png?width=1200)
手数料0.075%込。1hまでは普通に手数料負けしてたので有効になるのは4h以降です。4hもしっかり死んでる気配があったが。
MA3ということで期間が短すぎて頻繁にドテン繰り返した結果、トータル手数料>値幅 の構図になってしまった。トレンドには乗れているとはいいがたい。
ではちょっとトレンドの定義を変えてみる。
今度はちょっとフィルターをかけてみて、横軸の概念を取り入れる。
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lasthopelonger
//@version=5
strategy("Isao Envelope",overlay=false)
ma_length = input(3,"MA length")
width = input(1.00,"band width(%)")
ma = ta.sma(hl2,ma_length)
h = ma + (ma*width/100)
l = ma - (ma*width/100)
color_set = ma>ma[1]?color.green:color.red
//ma_p = plot(ma,color=color_set)
//h_p = plot(h,color=color_set)
//l_p = plot(l,color=color_set)
var long = 0.0
if ma[1]>ma[2] and ma>ma[1]
long := long+1
if ma[1]<ma[2] and ma>ma[1]
long := 1
var short = 0.0
if ma[1]<ma[2] and ma<ma[1]
short := short+1
if ma[1]>ma[2] and ma<ma[1]
short := 1
plot(long)
plot(short,color=color.red)
bgcolor(long>short?color.green:(long<short?color.red:na))
if long>short
strategy.entry("L",strategy.long)
if long<short
strategy.entry("S",strategy.short)
![](https://assets.st-note.com/img/1651254033286-qqCEkhoZnV.png?width=1200)
簡単に言ってしまうなら、「前回の下降していた時間より上昇していた時間の方が長くなったら上昇トレンド(緑背景)」、「前回の上昇していた時間より下降していた時間の方が長くなったら下降トレンド(赤背景)」といったものを可視化して、それぞれの条件に沿ってロング/ショートを持ち変えるといったストラテジーにしてみた。
若干損益はマイルドになったかなといった感じ。
トレード頻度の低下で手数料負けが少し減った影響だろうか。とはいうものの、やはり1時間足程度では無限に金減る挙動をしていたが。
結論:いずれにしろ3MAではトレンドとしての大きな値幅を狙うには不向き。
なお、横軸ストラテジーの方はもう少し期間を延ばすと若干マシにはなった。
ストラテジーの問題点とか
![](https://assets.st-note.com/img/1651258273969-hgWo3GMmJ6.png?width=1200)
こちらの画像は1時間足の25に期間を延ばしてみたのだが、後半のドローダウンがひどい。
のでエントリータイミング諸々見ながらちょっとだけ弱点を考察。
まず、MAの特徴として挙げられるのは、反応が遅いこと。
それを理解したうえで裁量に持っていくと、グランビルの買いや売りといったMAをエントリーの基準にした根拠を作ることができる。
![](https://assets.st-note.com/img/1651258696738-CDLvqptnln.png?width=1200)
しかしこれは、裁量という人間の目という高度な画像認識ソフトのなせる業であってなかなかプログラムは思うようには動いてくれない(移動平均線を上抜けた後に指値を置くということもできるが無条件にやるとやはり死ぬ)
横軸フィルターの場合、そのトレンド判断は前回のMAの方向継続時間<今のMAの方向継続時間になっているのでその遅さはもうゲロ吐きそうなほど遅い。
反応の遅さについては「長い時間続いてる方がトレンドだ」という仮定に基づいてカバーできるかと思ったがそういうわけでもなかった。
というのも、このストラテジーは根本的にドテン型である。
ということはトレンドが反転するまではポジションを持ち続ける。
![](https://assets.st-note.com/img/1651260491585-L8jB6ahN65.png?width=1200)
今回のトレンドの継続時間が前回のトレンド継続時間を超えない限り、握り潰す値幅の無駄が生じる。
トレンドにおける値幅の上昇率/下落率が同じと仮定した場合、トレンド継続時間が同じであれば同値でドテンを行い、そのトレードは無駄だったことになる。2倍を超えてようやくRR的には1に近いものになるだろう。
実際は強いトレンドの際は値幅もそれなりについてくるとは言うものの、凪相場も絡むとレンジの消耗分を補えるほどの余力がなさそうである。
まとめ
結局何がしたいのかはよくわからなかった。
ちなみに反転タイミングを見るだけならMAよりも恐らく過去数年分のチャートの各時間足の反転タイミングを目測で計ってExcelにまとめて統計を出すやり方を私ならやります(アナログ)
ここから先は
¥ 300
この記事が気に入ったらサポートをしてみませんか?