답변완료
문의 드립니다!
안녕하세요!
아래 수식을 다음과같이 수정 부탁드립니다
1, "지표속성" 창의 "챠트표시"란에서 각 가로선의 굵기와 색상등을 사용자지정 할수있도록 수정
* 가로선의 굵기및 색상등의 임의조정과 선과 선사이에 색상을 입히기위함입니다
2, 캔들이 상하방으로 이동시 가로선과 만나기 N틱전에 각각 세로선과 알랍신호가 발생
* 세로선의 두께와 색상은 사용자 지정이 가능토록 부탁합니다
예) 캔들이 각각의 가로선과 상하방에서 만나기 5틱전에 세로선및 알람신호 발생
감사합니다!!!
-------------------------------------------------------------------------------
input : N(30),색1(cyan),색2(cyan),굵기1(5),굵기2(5),형태1(1),형태2(1);
var : cnt(0),HH(0),LL(0),HTL1(0),LTL1(0),H1(0),L1(0),TL(0);
Array : HTL[100](0),LTL[100](0),HV[100](0),LV[100](0);
if Sdate != sDate[1] Then
{
value1 = sDate;
Value2 = value1[1];
Value3 = sTime;
Value4 = Value3[1];
For cnt = 1 to N
{
HV[cnt] = 0;
LV[cnt] = 0;
TL_Delete(HTL[cnt]);
TL_Delete(LTL[cnt]);
var1 = max(DayOpen(cnt),DayClose(cnt));
var2 = min(DayOpen(cnt),DayClose(cnt));
if cnt == 1 Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
HH = var1;
LTL[cnt] = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
LL = var2;
}
Else
{
if abs(var1-DayOpen(0)) < 10 and (var1 > HH or var1 < LL) Then
{
HTL[cnt] = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
HV[cnt] = var1;
TL_SetColor(HTL[cnt],색1);
TL_SetSize(HTL[cnt],굵기1);
TL_SetStyle(HTL[cnt],형태1);
TL_SetExtRight(HTL[cnt],true);
TL_SetDrawMode(HTL[cnt],0);
}
if abs(Var2-DayOpen(0)) < 10 and (Var2 > HH or Var2 < LL) Then
{
LTL[cnt] = TL_New(sDate,sTime,Var2,NextBarSdate,NextBarStime,Var2);
LV[cnt] = var2;
TL_SetColor(LTL[cnt],색2);
TL_SetSize(LTL[cnt],굵기2);
TL_SetStyle(LTL[cnt],형태2);
TL_SetExtRight(LTL[cnt],true);
TL_SetDrawMode(LTL[cnt],0);
}
if var1 > HH and abs(var1-DayOpen(0)) < 10 Then
HH = DayHigh(cnt);
if Var2 < LL and abs(Var2-DayOpen(0)) < 10 Then
LL = DayLow(cnt);
}
var3 = max(DayOpen(cnt+1),DayClose(cnt+1));
var4 = min(DayOpen(cnt+1),DayClose(cnt+1));
if cnt == 1 Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
H1 = var3;
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
L1 = var4;
}
Else
{
if abs(var3-DayOpen(1)) < 10 and (var3 > H1 or var3 < L1) Then
{
HTL1 = TL_New(Value2,value4,var3,sDate[1],sTime[1],var3);
TL_SetColor(HTL1,색1);
TL_SetSize(HTL1,굵기1);
TL_SetStyle(HTL1,형태1);
TL_SetDrawMode(HTL1,0);
}
if abs(Var4-DayOpen(1)) < 10 and (Var4 > H1 or Var4 < L1) Then
{
LTL1 = TL_New(Value2,Value3,var4,sDate[1],sTime[1],var4);
TL_SetColor(LTL1,색2);
TL_SetSize(LTL1,굵기2);
TL_SetStyle(LTL1,형태2);
TL_SetDrawMode(LTL1,0);
}
if var3 > H1 and abs(var3-DayOpen(1)) < 10 Then
H1 = Var3;
if Var2 < L1 and abs(Var2-DayOpen(0)) < 10 Then
L1 = Var4;
}
}
}
2024-09-01
802
글번호 183040
지표
답변완료
적용가능하도록 부탁드립니다.
**트레이팅뷰의 지표입니다. 적용가능하도록 부탁 드립니다.
indicator("Triple Confirmation Kernel Regression Oscillator Overlay [QuantraAI]", "KRO Overlay [QuantraAI]", true, format.price, timeframe = "", timeframe_gaps = false)
import QuantraAI/QuantraMAs/2 as DynamicMA
import QuantraSystems/DynamicFunctions/1 as DynamicFunc
var string KRS = "??? ??????? - Settings", var string KRU = "??? ??????? - UI"
source = input.source(close, "Source", group = KRS)
bandwidth = input.int (45, "Bandwidth", 1, group = KRS, tooltip = "Length of the Kernel Regression calculation")
width = input.float (2, "Width", step = 0.2, group = KRS, tooltip = "Smoothes the Signal")
sdLook = input.int (150, "Standard Deviation Lookback", group = KRS, tooltip = "Length of the SD bands lookback period")
sdMult = input.float (3, "Standard Deviation Extreme for OB/OS Border", step = 0.5, group = KRS, tooltip = "Defines the outer border of the SD bands. ₩nThe inner border begins at 50% of the SD Multiplier")
ColMode = input.string("Modern", "Color Palette Choice", inline = "QQ1", group = KRU, options = ["Classic", "Modern", "Robust", "Accented", "Monochrome"])
man = input.bool (false, "Custom Palette", inline = "QQ1", group = KRU)
manUpC = input.color (#00ff00, "Custom Up", inline = "man", group = KRU)
manDnC = input.color (#ff0000, "Custom Down", inline = "man", group = KRU)
sig = input.bool (false, "Show Trend Signals", group = KRU)
BCol = input.bool (true, "Enable Bar Coloring", group = KRU)
devS = input.bool (true, "Enable Deviation Band Shading", group = KRU)
OBOS = input.bool (true, "Enable Overbought/Oversold Shading", group = KRU)
TR = input.int (85, "Shading Transparency", 0, 100, group = KRU)
// Color assignment based on the
[UpC, DnC] = switch ColMode
"Classic" => [#00E676, #880E4F]
"Modern" => [#5ffae0, #c22ed0]
"Robust" => [#ffbb00, #770737]
"Accented" => [#9618f7, #ff0078]
"Monochrome" => [#dee2e6, #495057]
// Override with custom colors if manual
[UpCol, DnCol] = switch man
false => [UpC, DnC ]
true => [manUpC, manDnC]
// Achieves a non-deciaml tick size
rescale(src) => src * (1 / syminfo.mintick)
descale(src) => src / (1 / syminfo.mintick)
// Rescale the Input Source
source := rescale(source)
Wave = descale(DynamicFunc.waveCalculation (source, bandwidth, width ))
// Triple Confirmations
Ep = descale(DynamicFunc.kernelRegression(source, bandwidth, 'Epanechnikov' ))
Lo = descale(DynamicFunc.kernelRegression(source, bandwidth, 'Logistic' ))
Wa = descale(DynamicFunc.kernelRegression(source, bandwidth, 'Wave' ))
// Average
AV = math.avg(Ep, Lo, Wa) + close
Mid = DynamicMA.SMA(AV, sdLook)
arrUp = Wave > Wave[1] and not (Wave[1] > Wave[2])
arrDn = Wave < Wave[1] and not (Wave[1] < Wave[2])
// Standard Deviation Bands
[_, u1, l1] = DynamicFunc.stdv_bands(AV, sdLook, sdMult/2)
[_, u2, l2] = DynamicFunc.stdv_bands(AV, sdLook, sdMult)
// Define shared display settings
var all = sig ? display.all : display.none
// Main Plots
pu1 = plot (u1, "1.???? +", color.new(DnCol, 70) )
pl1 = plot (l1, "1.???? -", color.new(UpCol, 70) )
pu2 = plot (u2, "2.???? +", color.new(DnCol, 70) )
pl2 = plot (l2, "2.???? -", color.new(UpCol, 70) )
mid = plot (Mid, "Mid", color.gray, 2 )
HL2 = plot (hl2, "", color (na) )
wave = plot (Wave, "???????????? ????????", BCol ? color (na) : Wave > Wave[1] ? UpCol : DnCol, 3 ),
fill (pu1, pu2, u2, u1, devS ? color.new(DnCol, 60) : na, color.new(chart.bg_color, 55) ),
fill (pl1, pl2, l2, l1, devS ? color.new(UpCol, 60) : na, color.new(chart.bg_color, 55) ),
fill (wave, HL2, Wave, hl2, BCol ? color.new(Wave > Wave[1] ? UpCol : DnCol, 50) : na, color.new(chart.bg_color, 75) ),
plotshape(arrUp, "Trend", shape.arrowup, location.belowbar, UpCol, 0, "Up", UpCol, size = size.auto, display = all ),
plotshape(arrDn, "Trend", shape.arrowdown, location.abovebar, DnCol, 0, "Down", DnCol, size = size.auto, display = all ),
bgcolor (OBOS ? (AV > u2 ? color.new(DnCol, TR) : AV < l2 ? color.new(UpCol, TR) : na) : na),
barcolor (BCol ? Wave > Wave[1]? UpCol : DnCol: na)
2024-09-01
987
글번호 183035
지표