예스스탁
예스스탁 답변
2025-10-02 13:51:31.0
안녕하세요
예스스탁입니다.
input : trailType(1);#1:modified 2:unmodified
input : ATRPeriod(28);
input : ATRFactor(5);
input : show_fib_entries(1);#1:true, 0:False
var : norm_o(0),norm_h(0),norm_l(0),norm_c(0);
var : hilo(0),HRef(0),LRef(0),trueRange(0),_wild(0),loss(0);
var : Up(0),Dn(0);
norm_o = open;
norm_h = high;
norm_l = low;
norm_c = close;
#Wild_ma(_src, _malength) =>
# _wild = 0.0
# _wild := nz(_wild[1]) + (_src - nz(_wild[1])) / _malength
var1 = ma((norm_h - norm_l), ATRPeriod);
HiLo = min(norm_h - norm_l, 1.5 * iff(IsNan(var1)==true,0,var1));
HRef = iff(norm_l <= norm_h[1],norm_h - norm_c[1],
(norm_h - norm_c[1]) - 0.5 * (norm_l- norm_h[1]));
LRef = iff(norm_h >= norm_l[1],norm_c[1] - norm_l,
(norm_c[1] - norm_l) - 0.5 * (norm_l[1] - norm_h));
trueRange = IFf(trailType == 1 , max(HiLo, HRef, LRef) ,
max(norm_h - norm_l, abs(norm_h - norm_c[1]), abs(norm_l - norm_c[1])));
_wild = IFf(isnan(_wild[1])==true,0,_wild) + (trueRange - IFf(isnan(_wild[1])==true,0,_wild)) / ATRPeriod;
loss = ATRFactor * _wild;
Up = norm_c - loss;
Dn = norm_c + loss;
var : TrendUp(0),TrendDown(0),Trend(0),trail(0),ex(0);
TrendUp = Up;
TrendDown = Dn;
Trend = 1;
TrendUp = iff(norm_c[1] > TrendUp[1] , max(Up, TrendUp[1]) , Up);
TrendDown = iff(norm_c[1] < TrendDown[1] , min(Dn, TrendDown[1]) , Dn);
Trend = iff(norm_c > TrendDown[1] , 1 , IFf(norm_c < TrendUp[1] , -1 , iff(IsNan(Trend[1])==true,1,Trend[1])));
trail = iff(Trend == 1 , TrendUp , TrendDown);
ex = 0.0;
ex = IFf(CrossUp(Trend, 0) , norm_h ,
iff(CrossDown(Trend, 0) , norm_l ,
iff(Trend == 1 , max(ex[1], norm_h) ,
iff(Trend == -1 , min(ex[1], norm_l) , ex[1]))));
plot1(trail, "Trailingstop", iff(Trend == 1 , green , iff(Trend == -1 , red , Black)));
plot2(ex, "Extremum",iff(Trend == 1 , lime , iff(Trend == -1 , Magenta,Black)));
var :state("");
if trend == 1 Then
state = "long";
Else
state = "short";
var : fib1Level(0),fib2Level(0),fib3Level(0);
var : f1(0),f2(0),f3(0),l100(0);
fib1Level = 61.8;
fib2Level = 75.4;
fib3Level = 88.6;
f1 = ex + (trail - ex) * fib1Level / 100;
f2 = ex + (trail - ex) * fib2Level / 100;
f3 = ex + (trail - ex) * fib3Level / 100;
l100 = trail + 0;
plot3(f1, "Fib 1", black);
plot4(f2, "Fib 2", black);
plot5(f3, "Fib 3", black);
plot6(l100, "l100", black);
var : l1(False),l2(False),l3(False);
var : s1(False),s2(False),s3(False);
l1 = state[1] == "long" and CrossDown(norm_c, f1[1]);
l2 = state[1] == "long" and CrossDown(norm_c, f2[1]);
l3 = state[1] == "long" and CrossDown(norm_c, f3[1]);
s1 = state[1] == "short" and CrossUp(norm_c, f1[1]);
s2 = state[1] == "short" and CrossUp(norm_c, f2[1]);
s3 = state[1] == "short" and CrossUp(norm_c, f3[1]);
var : atr(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
atr = ma(trueRange, 14);
/////////// FIB PLOTS /////////////////.
if show_fib_entries == 1 and l1 Then
{
tx1 = Text_New(sDate,sTime,low - atr,"▲");
Text_SetColor(tx1,yellow);
Text_SetStyle(tx1,2,0);
}
if show_fib_entries == 1 and l2 Then
{
tx2 = Text_New(sDate,sTime,low - 1.5,"▲");
Text_SetColor(tx2,yellow);
Text_SetStyle(tx2,2,0);
}
if show_fib_entries == 1 and l3 Then
{
tx3 = Text_New(sDate,sTime,low - 2,"▲");
Text_SetColor(tx3,yellow);
Text_SetStyle(tx3,2,0);
}
if show_fib_entries == 1 and s1 Then
{
tx4 = Text_New(sDate,sTime,high + atr,"▼");
Text_SetColor(tx4,purple);
Text_SetStyle(tx4,2,1);
}
if show_fib_entries == 1 and s2 Then
{
tx5 = Text_New(sDate,sTime,high + 1.5,"▼");
Text_SetColor(tx5,purple);
Text_SetStyle(tx5,2,1);
}
if show_fib_entries == 1 and s3 Then
{
tx6 = Text_New(sDate,sTime,high + 2,"▼");
Text_SetColor(tx6,purple);
Text_SetStyle(tx6,2,1);
}
즐거운 명절 되시기 바랍니다.
> 해암 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래의 트레이딩뷰 수식을 변환 부탁드립니다.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Duyck
//@version=4
study("Blackflag FTS", overlay = true, resolution = "")
//{
// # Author: Jose Azcarate
//}
// inputs //
//{
trailType = input("modified", "Trailtype", options = ["modified", "unmodified"])
ATRPeriod = input(28, "ATR Period")
ATRFactor = input(5, "ATR Factor")
show_fib_entries = input(true, "Show Fib Entries?")
norm_o = security(tickerid(syminfo.prefix,syminfo.ticker), timeframe.period, open)
norm_h = security(tickerid(syminfo.prefix,syminfo.ticker), timeframe.period, high)
norm_l = security(tickerid(syminfo.prefix,syminfo.ticker), timeframe.period, low)
norm_c = security(tickerid(syminfo.prefix,syminfo.ticker), timeframe.period, close)
//}
//////// FUNCTIONS //////////////
//{
// Wilders ma //
Wild_ma(_src, _malength) =>
_wild = 0.0
_wild := nz(_wild[1]) + (_src - nz(_wild[1])) / _malength
/////////// TRUE RANGE CALCULATIONS /////////////////
HiLo = min(norm_h - norm_l, 1.5 * nz(sma((norm_h - norm_l), ATRPeriod)))
HRef = norm_l<= norm_h[1] ?
norm_h - norm_c[1] :
(norm_h - norm_c[1]) - 0.5 * (norm_l- norm_h[1])
LRef = norm_h >= norm_l[1] ?
norm_c[1] - norm_l:
(norm_c[1] - norm_l) - 0.5 * (norm_l[1] - norm_h)
trueRange =
trailType == "modified" ? max(HiLo, HRef, LRef) :
max(norm_h - norm_l, abs(norm_h - norm_c[1]), abs(norm_l - norm_c[1]))
//}
/////////// TRADE LOGIC ////////////////////////
//{
loss = ATRFactor * Wild_ma(trueRange, ATRPeriod)
Up = norm_c - loss
Dn = norm_c + loss
TrendUp = Up
TrendDown = Dn
Trend = 1
TrendUp := norm_c[1] > TrendUp[1] ? max(Up, TrendUp[1]) : Up
TrendDown := norm_c[1] < TrendDown[1] ? min(Dn, TrendDown[1]) : Dn
Trend := norm_c > TrendDown[1] ? 1 : norm_c < TrendUp[1]? -1 : nz(Trend[1],1)
trail = Trend == 1? TrendUp : TrendDown
ex = 0.0
ex :=
crossover(Trend, 0) ? norm_h :
crossunder(Trend, 0) ? norm_l :
Trend == 1 ? max(ex[1], norm_h) :
Trend == -1 ? min(ex[1], norm_l) : ex[1]
//}
// //////// PLOT TP and SL /////////////
//{
plot(trail, "Trailingstop", style = plot.style_line, color = Trend == 1 ? color.green : Trend == -1 ? color.red : na)
plot(ex, "Extremum", style = plot.style_circles, color = Trend == 1? color.lime : Trend == -1? color.fuchsia : na)
//}
////// FIBONACCI LEVELS ///////////
//{
state = Trend == 1 ? "long" : "short"
fib1Level = 61.8
fib2Level = 75.4
fib3Level = 88.6
f1 = ex + (trail - ex) * fib1Level / 100
f2 = ex + (trail - ex) * fib2Level / 100
f3 = ex + (trail - ex) * fib3Level / 100
l100 = trail + 0
Fib1 = plot(f1, "Fib 1", style = plot.style_line, color = color.black)
Fib2 = plot(f2, "Fib 2", style = plot.style_line, color = color.black)
Fib3 = plot(f3, "Fib 3", style = plot.style_line, color = color.black)
L100 = plot(l100, "l100", style = plot.style_line, color = color.black)
fill(Fib1, Fib2, color = state == "long"? color.green : state == "short"? color.red : na)
fill(Fib2, Fib3, color = state == "long"? color.new(color.green, 70) : state == "short"? color.new(color.red, 70) : na)
fill(Fib3, L100, color = state == "long"? color.new(color.green, 60) : state == "short"? color.new(color.red, 60) : na)
l1 = state[1] == "long" and crossunder(norm_c, f1[1])
l2 = state[1] == "long" and crossunder(norm_c, f2[1])
l3 = state[1] == "long" and crossunder(norm_c, f3[1])
s1 = state[1] == "short" and crossover(norm_c, f1[1])
s2 = state[1] == "short" and crossover(norm_c, f2[1])
s3 = state[1] == "short" and crossover(norm_c, f3[1])
atr = sma(trueRange, 14)
/////////// FIB PLOTS /////////////////.
plotshape(show_fib_entries and l1 ? low - atr : na, "LS1", style = shape.triangleup, location = location.belowbar, color = color.yellow, size = size.tiny)
plotshape(show_fib_entries and l2 ? low - 1.5 * atr : na, "LS2", style = shape.triangleup, location = location.belowbar, color = color.yellow, size = size.tiny)
plotshape(show_fib_entries and l3 ? low - 2 * atr : na, "LS3", style = shape.triangleup, location = location.belowbar, color = color.yellow, size = size.tiny)
plotshape(show_fib_entries and s1 ? high + atr : na, "SS1", style = shape.triangledown, location = location.abovebar, color = color.purple, size = size.tiny)
plotshape(show_fib_entries and s2 ? high + 1.5 * atr : na, "SS2", style = shape.triangledown, location = location.abovebar, color = color.purple, size = size.tiny)
plotshape(show_fib_entries and s3 ? high + 2 * atr : na, "SS3", style = shape.triangledown, location = location.abovebar, color = color.purple, size = size.tiny)
//}
======================
항상 감사드립니다. 수고하세요!!!