예스스탁
예스스탁 답변
2025-06-18 13:06:36
안녕하세요
예스스탁입니다.
1
추세선이나 박스등은 굵기를 굵게하면 점선들이 붙어 보이지 않게 됩니다.
아래식에 점선으로 처리해 드리지만 굵기가 3이라 선처럼 보이게 됩니다.
2
3등분선 더 길게 표시는 하지 못합니다.
3
input : period1(10),multiplier1(3);
input : period2(20),multiplier2(2);
input : period3(30),multiplier3(3);
var : src(0);
var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0);
var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0);
var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0);
var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0);
var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0);
var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0);
var : TL1(0),TL2(0),TL3(0),TL(0),box1(0),box2(0);
src = (H+L)/2;
if CurrentBar > 1 Then
{
alpha1 = 1 / period1;
source1 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand1 = src + multiplier1 * AtrV1;
lowerBand1 = src - multiplier1 * AtrV1;
prevLowerBand1 = lowerBand1[1];
prevUpperBand1 = upperBand1[1];
if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then
lowerBand1 = lowerBand1;
Else
lowerBand1 = prevLowerBand1;
if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then
upperBand1 = upperBand1;
Else
upperBand1 = prevUpperBand1;
if C > UpperBand1 Then
direction1 = 1;
if C < LowerBand1 Then
direction1 = -1;
if direction1 == 1 Then
supertrend1 = lowerband1;
Else
supertrend1 = upperband1;
alpha2 = 1 / period2;
source2 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand2 = src + multiplier2 * AtrV2;
lowerBand2 = src - multiplier2 * AtrV2;
prevLowerBand2 = lowerBand2[1];
prevUpperBand2 = upperBand2[1];
if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then
lowerBand2 = lowerBand2;
Else
lowerBand2 = prevLowerBand2;
if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then
upperBand2 = upperBand2;
Else
upperBand2 = prevUpperBand2;
if C > UpperBand2 Then
direction2 = 1;
if C < LowerBand2 Then
direction2 = -1;
if direction2 == 1 Then
supertrend2 = lowerband2;
Else
supertrend2 = upperband2;
alpha3 = 1 / period3;
source3 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand3 = src + multiplier3 * AtrV3;
lowerBand3 = src - multiplier3 * AtrV3;
prevLowerBand3 = lowerBand3[1];
prevUpperBand3 = upperBand3[1];
if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then
lowerBand3 = lowerBand3;
Else
lowerBand3 = prevLowerBand3;
if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then
upperBand3 = upperBand3;
Else
upperBand3 = prevUpperBand3;
if C > UpperBand3 Then
direction3 = 1;
if C < LowerBand3 Then
direction3 = -1;
if direction3 == 1 Then
supertrend3 = lowerband3;
Else
supertrend3 = upperband3;
if C > superTrend1 Then
{
Plot1(superTrend1,"매수1", rgb(247, 75, 201), 0, 1);
NoPlot(2);
}
Else
{
Plot2(superTrend1,"매도1", Indigo, 0, 1);
NoPlot(1);
}
if C > superTrend2 Then
{
Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2);
NoPlot(4);
}
Else
{
Plot4(superTrend2,"매도2", Indigo, 0, 2);
NoPlot(3);
}
if C > superTrend3 Then
{
Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 7);
NoPlot(6);
}
Else
{
Plot6(superTrend3,"매도3", Indigo, 0, 7);
NoPlot(5);
}
}
var : box(0);
if CrossUp(c,supertrend3) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(TL,Red);
TL_SetSize(TL,3);
TL_SetStyle(TL,3);
var1 = h;
var2 = (h+l)/2;
var3 = l;
var4 = Index;
tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3);
TL_SetColor(tl1,Black);
TL_SetColor(tl2,Black);
TL_SetColor(tl3,Black);
TL_SetSize(tl1,1);
TL_SetSize(tl2,1);
TL_SetSize(tl3,1);
box1 = Box_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var2);
box2 = Box_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var3);
Box_SetColor(box1,Yellow);
Box_SetFill(box1,true);
Box_SetColor(box2,Blue);
Box_SetFill(box2,true);
}
Else if CrossDown(c,supertrend3) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(TL,Blue);
TL_SetSize(TL,3);
TL_SetStyle(TL,3);
var1 = h;
var2 = (h+l)/2;
var3 = l;
var4 = Index;
tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3);
TL_SetColor(tl1,Black);
TL_SetColor(tl2,Black);
TL_SetColor(tl3,Black);
TL_SetSize(tl1,1);
TL_SetSize(tl2,1);
TL_SetSize(tl3,1);
box1 = Box_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var2);
box2 = Box_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var3);
Box_SetColor(box1,Yellow);
Box_SetFill(box1,true);
Box_SetColor(box2,Blue);
Box_SetFill(box2,true);
}
Else
{
if var4 > 0 and Index < var4+5 Then
{
TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3);
Box_SetEnd(box1,NextBarSdate,NextBarStime,var2);
Box_SetEnd(box2,NextBarSdate,NextBarStime,var3);
}
}
즐거운 하루되세요
> 어떤하루 님이 쓴 글입니다.
> 제목 : 한번더 부탁드립니다
> 세로선 작성 감사드립니다.
선을 굵은 점선으로 표시나게 할 수 있으면 좋겠습니다._ _ _
3등분선도 지금보다 조금 더 길게 점선으로 표시 부탁드립니다.
3등분 박스 중심선 위는 노랑 아래는 하늘색으로 색상도 넣어주세요
봉이 완성되면서 3등분이 생길때 좀 길게 바로 생기면 좋겠습니다.
input : period1(10),multiplier1(3);
input : period2(20),multiplier2(2);
input : period3(30),multiplier3(3);
var : src(0);
var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0);
var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0);
var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0);
var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0);
var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0);
var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0);
var : TL1(0),TL2(0),TL3(0);
src = (H+L)/2;
if CurrentBar > 1 Then
{
alpha1 = 1 / period1;
source1 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand1 = src + multiplier1 * AtrV1;
lowerBand1 = src - multiplier1 * AtrV1;
prevLowerBand1 = lowerBand1[1];
prevUpperBand1 = upperBand1[1];
if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then
lowerBand1 = lowerBand1;
Else
lowerBand1 = prevLowerBand1;
if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then
upperBand1 = upperBand1;
Else
upperBand1 = prevUpperBand1;
if C > UpperBand1 Then
direction1 = 1;
if C < LowerBand1 Then
direction1 = -1;
if direction1 == 1 Then
supertrend1 = lowerband1;
Else
supertrend1 = upperband1;
alpha2 = 1 / period2;
source2 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand2 = src + multiplier2 * AtrV2;
lowerBand2 = src - multiplier2 * AtrV2;
prevLowerBand2 = lowerBand2[1];
prevUpperBand2 = upperBand2[1];
if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then
lowerBand2 = lowerBand2;
Else
lowerBand2 = prevLowerBand2;
if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then
upperBand2 = upperBand2;
Else
upperBand2 = prevUpperBand2;
if C > UpperBand2 Then
direction2 = 1;
if C < LowerBand2 Then
direction2 = -1;
if direction2 == 1 Then
supertrend2 = lowerband2;
Else
supertrend2 = upperband2;
alpha3 = 1 / period3;
source3 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand3 = src + multiplier3 * AtrV3;
lowerBand3 = src - multiplier3 * AtrV3;
prevLowerBand3 = lowerBand3[1];
prevUpperBand3 = upperBand3[1];
if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then
lowerBand3 = lowerBand3;
Else
lowerBand3 = prevLowerBand3;
if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then
upperBand3 = upperBand3;
Else
upperBand3 = prevUpperBand3;
if C > UpperBand3 Then
direction3 = 1;
if C < LowerBand3 Then
direction3 = -1;
if direction3 == 1 Then
supertrend3 = lowerband3;
Else
supertrend3 = upperband3;
if C > superTrend1 Then
{
Plot1(superTrend1,"매수1", rgb(247, 75, 201), 0, 1);
NoPlot(2);
}
Else
{
Plot2(superTrend1,"매도1", Indigo, 0, 1);
NoPlot(1);
}
if C > superTrend2 Then
{
Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2);
NoPlot(4);
}
Else
{
Plot4(superTrend2,"매도2", Indigo, 0, 2);
NoPlot(3);
}
if C > superTrend3 Then
{
Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 7);
NoPlot(6);
}
Else
{
Plot6(superTrend3,"매도3", Indigo, 0, 7);
NoPlot(5);
}
}
var : box(0);
if CrossUp(c,supertrend3) Then
{
box = box_New(sDate,sTime,H,sDate,sTime,L);
box_SetColor(box,Red);
Box_SetFill(box,true,200);
Box_SetExtFill(box,true);
var1 = h;
var2 = (h+l)/2;
var3 = l;
var4 = Index;
tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3);
TL_SetColor(tl1,Black);
TL_SetColor(tl2,Black);
TL_SetColor(tl3,Black);
TL_SetSize(tl1,1);
TL_SetSize(tl2,1);
TL_SetSize(tl3,1);
}
Else if CrossDown(c,supertrend3) Then
{
box = box_New(sDate,sTime,H,sDate,sTime,L);
box_SetColor(box,Blue);
Box_SetFill(box,true,200);
Box_SetExtFill(box,true);
var1 = h;
var2 = (h+l)/2;
var3 = l;
var4 = Index;
tl1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1);
tl2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2);
tl3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3);
TL_SetColor(tl1,Black);
TL_SetColor(tl2,Black);
TL_SetColor(tl3,Black);
TL_SetSize(tl1,1);
TL_SetSize(tl2,1);
TL_SetSize(tl3,1);
}
Else
{
if var4 > 0 and Index < var4+5 Then
{
TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3);
}
}