Files
banstagy/com/inds.go
2026-08-24 20:53:21 +08:00

42 lines
1.0 KiB
Go

package com
import "github.com/banbox/banta"
/*
IchimokuCloud
sml: 9, mid: 26, big: 52, disp: 26
return [smlMa, midMa, spanA, spanB]
*/
func IchimokuCloud(e *banta.BarEnv, sml, mid, big, disp int) *banta.Series {
res := e.Close.To("_ichimokuCld", big*100000+mid*1000+disp*10+sml)
if res.Cached() {
return res
}
// earlier
h := e.High.Back(disp - 1)
l := e.Low.Back(disp - 1)
hhSml := banta.Highest(h, sml).Get(0)
llSml := banta.Lowest(l, sml).Get(0)
hhMid := banta.Highest(h, mid).Get(0)
llMid := banta.Lowest(l, mid).Get(0)
hhBig := banta.Highest(h, big).Get(0)
llBig := banta.Lowest(l, big).Get(0)
smlMa := (hhSml + llSml) / 2
midMa := (hhMid + llMid) / 2
bigMa := (hhBig + llBig) / 2
spanA := (smlMa + midMa) / 2
// Current
h, l = e.High, e.Low
hhSml = banta.Highest(h, sml).Get(0)
llSml = banta.Lowest(l, sml).Get(0)
hhMid = banta.Highest(h, mid).Get(0)
llMid = banta.Lowest(l, mid).Get(0)
smlMa2 := (hhSml + llSml) / 2
midMa2 := (hhMid + llMid) / 2
return res.Append([]float64{smlMa2, midMa2, spanA, bigMa})
}