답변완료
문의 드립니다1
안녕하세요!
제가 아래수식을 활용코자하는 목적은...
세로선이 발생하기전에 이 세로선의 가격에 미리 가로선이 N봉전에 발생하는것을 보고자함이었습니다
헌데 며칠간 실시간에서 검증해본결과 오히려 세로선이 발생후(N봉후)에 이 가로선이 나중에 발생이됩니다
+ - 어떤것을 적용해도 이치는 똑같습니다
저의 의도대로 수정이 가능하다면 다시한번 부탁드리겠습니다
여러번 번거롭게 해드려서 죄송합니다
------------------------------------------------------------------------------
input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5);
var : cond11(false,data2),cond21(false,data2);
var : cond12(false,data2),cond22(false,data2);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
if Bdate != Bdate[1] Then
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
}
cond11 = data3(highD(0)) >= data2(highD(0)-PriceScale*1);
cond21 = data2(lowD(0)) <= data3(lowD(0)+PriceScale*1);
cond11 = data2(highD(0)) >= data3(highD(0)-PriceScale*1);
cond21 = data3(lowD(0)) <= data2(lowD(0)+PriceScale*1);
if data2(sTime >= 90300 and Cond11 == true and cond11[1] == false) Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,White);
TL_SetSize(TL1,굵기1);
value1 = data3(highD(0));
}
if data2(sTime >= 90300 and Cond21 == true and cond21[1] == false) Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,black);
TL_SetSize(TL2,굵기2);
value2 = data3(lowD(0));
}
cond12 = data3(LowD(0)) <= data2(lowD(0)+PriceScale*1);
cond22 = data2(highD(0)) >= data3(highD(0)-PriceScale*1);
cond12 = data2(LowD(0)) <= data3(lowD(0)+PriceScale*1);
cond22 = data3(highD(0)) >= data2(highD(0)-PriceScale*1);
if data2(sTime >= 90300 and Cond12 == true and cond12[1] == false) Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,White);
TL_SetSize(TL3,굵기3);
value3 = data3(LowD(0));
}
if data2(sTime >= 90300 and Cond22 == true and cond22[1] == false) Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩.wav");
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,black);
TL_SetSize(TL4,굵기4);
value4 = data3(highD(0));
}
if value1 > 0 Then
Plot1(value1);
Else
noplot(1);
if value2 > 0 Then
Plot2(value2);
Else
noplot(2);
if value3 > 0 Then
Plot3(value3);
Else
noplot(3);
if value4 > 0 Then
Plot4(value4);
Else
noplot(4);
FixPlotShift(1,-10);
FixPlotShift(2,-10);
FixPlotShift(3,-10);
FixPlotShift(4,-10);
2023-05-12
1342
글번호 168901
지표
답변완료
트렌드 크기
inputs: ATRLength(15), Strength(18), 폭(0.2);
input : 쌍봉상(1),쌍봉하(2),쌍바닥상(2),쌍바닥하(2);
var : STrend(0),ATRv(0), avgv(0), dnv(0), upv(0), trend(1), flag(0), flagh(0), ST(0),hl(0);
var : idx(0),hh(0),ll(0),EP1(0),EP2(0);
var : ema1(0),ema2(0),ema3(0),h1(0),l1(0),h2(0),h3(0),l2(0),l3(0),h4(0),l4(0);
var :tx(0),tl(0);
Ep1 = 2/(ATRLength+1);
Ep2 = 2/(Strength+1);
idx = idx+1;
if idx < ATRLength Then
{
hh = DayHigh;
ll = daylow;
}
Else
{
hh = Highest(High, ATRLength);
ll = Lowest(Low, ATRLength);
}
if idx < Strength Then
{
h1 = DayHigh;
l1 = daylow;
}
Else
{
h1 = Highest(High, Strength);
l1 = Lowest(Low, Strength);
}
hl = hh-ll;
if idx == 1 Then
{
ema1 = hl;
ema2 = h;
ema3 = l;
}
Else
{
ema1 = hl * EP1 + ema1 * (1-EP1);
ema2 = h * EP2 + ema2 * (1-EP2);
ema3 = l * EP2 + ema3 * (1-EP2);
}
atrv = ema1;
avgv = (ema2+ema3)/2;
upv = avgv + ATRv;
dnv = avgv - ATRv;
if idx >= 2 then
{
if c > upv[1] and c > h1[1] then trend = 1;
else if c < dnv[1] and c < l1[1] then trend = -1;
if trend < 0 and trend[1] > 0 then flag=1; else flag=0;
if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0;
if trend > 0 and dnv < dnv[1] then dnv=dnv[1];
if trend < 0 and upv > upv[1] then upv=upv[1];
if flag == 1 then upv = avgv + ATRv;
if flagh == 1 then dnv = avgv - ATRv;
if trend == 1 then ST = dnv; else ST = upv;
STrend = trend;
}
Plot1(st,"SuperTrend",iff(strend == 1,red,blue));
if Trend != Trend[1] Then
{
if Trend == 1 Then
{
var1 = h;
var2 = var1[1];
tx = Text_New_Self(sDate,sTime, st,"●");
Text_SetColor(tx,Red);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,2);
if Var4 > 0 and var3 <= Var4+PriceScale*쌍바닥상 and var3 >= Var4-PriceScale*쌍바닥하 Then
{
tx = Text_New_Self(sDate,sTime, st,"●");
Text_SetColor(tx,Magenta);
Text_SetSize(tx,25);
Text_SetStyle(tx,2,2);
}
}
Else
{
Var3 = l;
Var4 = Var3[1];
tx = Text_New_Self(sDate,sTime, st,"●");
Text_SetColor(tx,Blue);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,2);
if Var2 > 0 and var1 <= Var2+PriceScale*쌍봉상 and var1 >= Var2-PriceScale*쌍봉하 Then
{
tx = Text_New_Self(sDate,sTime, st,"●");
Text_SetColor(tx,Cyan);
Text_SetSize(tx,25);
Text_SetStyle(tx,2,2);
}
}
}
Else
{
if Trend == 1 Then
{
if h > var1 Then
var1 = h;
}
if Trend == -1 Then
{
if l < var3 Then
var3 = l;
}
}
if Trend != Trend[1] Then
{
if Trend == 1 Then
{
h2 = h;
h3 = h2[1];
h4 = h3[1];
if L4 > 0 and
max(L2,l3,l4) <= min(L2,l3,l4)+폭 Then
{
tx = Text_New_Self(sDate,sTime, st,"●");
Text_SetColor(tx,Black);
Text_SetSize(tx,20);
Text_SetStyle(tx,2,2);
}
}
Else
{
L2 = l;
l3 = l2[1];
l4 = l3[1];
}
}
Else
{
if Trend == 1 Then
{
if h > h2 Then
h2 = h;
}
if Trend == -1 Then
{
if l < L2 Then
L2 = l;
}
}
상승 트렌드가 생기면 트렌드 상단에, 크기를 트렌드를 따라 올라가며 red로 표기.
하락 트렌드로 바뀌면 하단을 따라 내려가며 크기를 blue로 표기.
표기는 마자막 상단 하나, 하단 하나만 남기고 이전은 삭제. 감사합니다.
2023-05-12
1607
글번호 168900
지표
답변완료
박스 중앙선
input : Period(250);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0);
var : TL(0),TL1(0),TX(0),tl4(0),tl5(0),tl9(0);
var : box(0),box1(0),txx(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Plot1(value12);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
box = box_new(date11,time11,Value11,date12,time12,Value12);
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date22 = date[0];
time22 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
}
if value12 > value11-0.7 Then
{
Box_SetColor(box,LCyan);
Box_SetFill(box,true,20);
}
else if value12 <= value11-0.7 and value12 > value11-1 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,50);
}
else if value12 <= value11-1 and value12 > value11-1.7 Then
{
Box_SetColor(box,Cyan);
Box_SetFill(box,true,40);
}
else
{
Box_SetColor(box,Yellow);
Box_SetFill(box,true,30);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
box = box_new(date11,time11,Value11,date12,time12,Value12);
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date32 = date[0];
time32 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
}
if Value12 >= value11+1 Then
{
Box_SetColor(box,Magenta);
Box_SetFill(box,true,20);
}
Else
{
Box_SetColor(box,Orange);
Box_SetFill(box,true,20);
}
}
박스의 상하 정중앙에(50%), 커짐에 따라 상하로 이동하는 "수평" 라인 추가. 감사합니다.
2023-05-12
1719
글번호 168898
지표