예스스탁
예스스탁 답변
2020-03-03 16:50:19
안녕하세요
예스스탁입니다.
매수신호와 매도신호가 어떤 조건인지 불명확합니다.
파란색에서 빨간색으로 변경되면 매수,
빨간색에서 파란색으로 변경되면 매도로 작성했습니다.
input : P(22),n(3);
var : AvgTR(0),BasicUpper(0),BasicLower(0);
var : FinalUpper(0),FinalLower(0),SuperTrend(0);
var : T(0),TL1(0),TL2(0),TX1(0),TX2(0);
AvgTR = ATR(P);
BasicUpper = (H+L)/2 + (AvgTR*n);
BasicLower = (H+L)/2 - (AvgTR*n);
if IsNaN(FinalUpper) == true or BasicUpper < FinalUpper or C[1] > FinalUpper then
FinalUpper = BasicUpper;
else
FinalUpper = FinalUpper;
if IsNaN(FinalLower) == true or BasicLower > FinalLower[1] or C[1] < FinalLower[1] then
FinalLower = BasicLower;
else
FinalLower = FinalLower;
SuperTrend = IfF(SuperTrend == FinalUpper[1] and Close[0] <= FinalUpper[0], FinalUpper[0],
IfF(SuperTrend == FinalUpper[1] and Close[0] >= FinalUpper[0],FinalLower[0],
IfF(SuperTrend == FinalLower[1] and Close[0]>=FinalLower[0],FinalLower[0],
IfF(SuperTrend == FinalLower[1] and Close[0]<=FinalLower[0],FinalUpper[0],0))));
if SuperTrend > SuperTrend[1] then
T = 1;
if SuperTrend < SuperTrend[1] Then
T = -1;
if MarketPosition <= 0 and T == 1 and T != T[1] Then
{
buy("b");
var1 = L;
TL1 = TL_New(sdate,stime,var1,NextBarSdate,NextBarStime,var1);
TL_SetColor(TL1,RED);
TX1 = Text_New(NextBarSdate,NextBarStime,var1,NumToStr(var1,2));
Text_SetStyle(TX1,0,0);
}
if MarketPosition >= 0 and T == -1 and T != T[1] Then
{
sell("s");
var2 = H;
TL2 = TL_New(sdate,stime,var2,NextBarSdate,var2,var2);
TL_SetColor(TL2,BLUE);
TX2 = Text_New(NextBarSdate,NextBarStime,var2,NumToStr(var2,2));
Text_SetStyle(TX2,0,1);
}
if MarketPosition == 1 Then
TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1);
if MarketPosition == -1 Then
TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2);
즐거운 하루되세요
> 더월 님이 쓴 글입니다.
> 제목 : 부탁좀 드리겠습니다.
> 도움주셔서 감사합니다
아래의 수식을 시스템식으로 부탁드립니다
매수신호는 신호캔들 최저가에 선과 수치가 표시되고
매도신호는 신호캔들 최고가에 선과 수치가 표시되었으면 합니다.
input : P(22),n(3);
var : AvgTR(0),BasicUpper(0),BasicLower(0);
var : FinalUpper(0),FinalLower(0),SuperTrend(0);
var : tx1(0),T(0);
AvgTR = ATR(P);
BasicUpper = (H+L)/2 + (AvgTR*n);
BasicLower = (H+L)/2 - (AvgTR*n);
if IsNaN(FinalUpper) == true or BasicUpper < FinalUpper or C[1] > FinalUpper then
FinalUpper = BasicUpper;
else
FinalUpper = FinalUpper;
if IsNaN(FinalLower) == true or BasicLower > FinalLower[1] or C[1] < FinalLower[1] then
FinalLower = BasicLower;
else
FinalLower = FinalLower;
SuperTrend = IfF(SuperTrend == FinalUpper[1] and Close[0] <= FinalUpper[0], FinalUpper[0],
IfF(SuperTrend == FinalUpper[1] and Close[0] >= FinalUpper[0],FinalLower[0],
IfF(SuperTrend == FinalLower[1] and Close[0]>=FinalLower[0],FinalLower[0],
IfF(SuperTrend == FinalLower[1] and Close[0]<=FinalLower[0],FinalUpper[0],0))));
if SuperTrend > SuperTrend[1] then
T = 1;
if SuperTrend < SuperTrend[1] Then
T = -1;
plot3(SuperTrend,"SuperTrend",iff(T == 1,RED,BLUE));
if (sdate != sdate[1] and stime >= 233000) or
(sdate == sdate[1] and stime >= 233000 and stime[1] < 233000) Then
{
var1 = h;
var2 = l;
var11 = var1[1];
var22 = var2[1];
var33 = var3[1];
}
if h > var1 Then
var1 = h ;
if l < var2 Then
var2 = l;
var3 = var1-var2;
if var11 > 0 and var22 > 0 then
{
plot1(var22+var33*0.000,"기준");
plot2(var22+var33*0.118,"+118");
plot3(var22+var33*0.236,"+236");
plot4(var22+var33*0.382,"+382");
plot5(var22+var33*0.500,"+500");
plot6(var22+var33*0.618,"+618");
plot7(var22+var33*0.764,"+764");
plot8(var22+var33*0.882,"+882");
plot9(var22+var33*1.000,"+100");
plot10(var22+var33*1.236,"+1.236");
plot11(var22+var33*1.382,"+1.382");
plot12(var22+var33*1.500,"+1.500");
plot13(var22+var33*1.618,"+1.618");
plot14(var22+var33*1.764,"+1.764");
plot15(var22+var33*2.000,"+2.000");
plot16(var22-var33*0.236,"-236");
plot17(var22-var33*0.382,"-382");
plot18(var22-var33*0.500,"-500");
plot19(var22-var33*0.618,"-618");
plot20(var22-var33*1.000,"-100");
Text_Delete(value1);
Text_Delete(value2);
Text_Delete(value3);
Text_Delete(value4);
Text_Delete(value5);
Text_Delete(value6);
Text_Delete(value7);
Text_Delete(value8);
Text_Delete(value9);
Text_Delete(value10);
Text_Delete(value11);
Text_Delete(value12);
Text_Delete(value13);
Text_Delete(value14);
Text_Delete(value15);
Text_Delete(value16);
Text_Delete(value17);
Text_Delete(value18);
Text_Delete(value19);
Text_Delete(value20);
value1 = Text_New(sdate,stime,var22+var33*0.000,"+0%");
value2 = Text_New(sdate,stime,var22+var33*0.118,"+11.8%");
value3 = Text_New(sdate,stime,var22+var33*0.236,"+23.6%");
value4 = Text_New(sdate,stime,var22+var33*0.382,"+38.2%");
value5 = Text_New(sdate,stime,var22+var33*0.500,"+50.0%");
value6 = Text_New(sdate,stime,var22+var33*0.618,"+61.8%");
value7 = Text_New(sdate,stime,var22+var33*0.764,"+76.4%");
value8 = Text_New(sdate,stime,var22+var33*0.882,"+88.2%");
value9 = Text_New(sdate,stime,var22+var33*1.000,"+100.0%");
value10 = Text_New(sdate,stime,var22+var33*1.236,"+123.6%");
value11 = Text_New(sdate,stime,var22+var33*1.382,"+138.2%");
value12 = Text_New(sdate,stime,var22+var33*1.500,"+150.0%");
value13 = Text_New(sdate,stime,var22+var33*1.618,"+161.8%");
value14 = Text_New(sdate,stime,var22+var33*1.764,"+176.4%");
value15 = Text_New(sdate,stime,var22+var33*2.000,"+200.%");
value16 = Text_New(sdate,stime,var22-var33*0.236,"-23.6%");
value17 = Text_New(sdate,stime,var22-var33*0.382,"-38.2%");
value18 = Text_New(sdate,stime,var22-var33*0.500,"-50.0%");
value19 = Text_New(sdate,stime,var22-var33*0.618,"-61.8%");
value20 = Text_New(sdate,stime,var22-var33*1.000,"-100.0%");
}
예스스탁
예스스탁 답변
2020-03-03 17:11:30
안녕하세요
예스스탁입니다.
최대한 오른쪽으로 정렬하게 작성해 드립니다.
만약 해당식으로 봉이 가려지면
value1 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.000," "+"+0.0%:"+NumToStr(var22+var33*0.000,표시소숫점자리수));
위와 같은 출력문에서
" "+"+0.0%:"+NumToStr(var22+var33*0.000,표시소숫점자리수)
가 출력문을 지정하는 부분입니다.
제일 앞에 " "안에 스페이스를 더 많이 주시면 됩니다.
만약에 차트 오른쪽 여백이 좁아서 글자가 다 표시가 안되시면
차트창속성의 기타탭에서 X축여백을 늘려주시면 됩니다.
차트창 속성은 차트에서 바탕화면을 더블클릭하면 나타납니다.
아래식과 이전식을 비교해 보시기 바랍니다.
input : 표시소숫점자리수(2);
if (sdate != sdate[1] and stime >= 233000) or
(sdate == sdate[1] and stime >= 233000 and stime[1] < 233000) Then
{
var1 = h;
var2 = l;
var11 = var1[1];
var22 = var2[1];
var33 = var3[1];
}
if h > var1 Then
var1 = h ;
if l < var2 Then
var2 = l;
var3 = var1-var2;
if var11 > 0 and var22 > 0 then
{
plot1(var22+var33*0.000,"기준");
plot2(var22+var33*0.118,"+118");
plot3(var22+var33*0.236,"+236");
plot4(var22+var33*0.382,"+382");
plot5(var22+var33*0.500,"+500");
plot6(var22+var33*0.618,"+618");
plot7(var22+var33*0.764,"+764");
plot8(var22+var33*0.882,"+882");
plot9(var22+var33*1.000,"+100");
plot10(var22+var33*1.236,"+1.236");
plot11(var22+var33*1.382,"+1.382");
plot12(var22+var33*1.500,"+1.500");
plot13(var22+var33*1.618,"+1.618");
plot14(var22+var33*1.764,"+1.764");
plot15(var22+var33*2.000,"+2.000");
plot16(var22-var33*0.236,"-236");
plot17(var22-var33*0.382,"-382");
plot18(var22-var33*0.500,"-500");
plot19(var22-var33*0.618,"-618");
plot20(var22-var33*1.000,"-100");
Text_Delete(value1);
Text_Delete(value2);
Text_Delete(value3);
Text_Delete(value4);
Text_Delete(value5);
Text_Delete(value6);
Text_Delete(value7);
Text_Delete(value8);
Text_Delete(value9);
Text_Delete(value10);
Text_Delete(value11);
Text_Delete(value12);
Text_Delete(value13);
Text_Delete(value14);
Text_Delete(value15);
Text_Delete(value16);
Text_Delete(value17);
Text_Delete(value18);
Text_Delete(value19);
Text_Delete(value20);
value1 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.000," +0.0%:"+NumToStr(var22+var33*0.000,표시소숫점자리수));
value2 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.118," +11.8%:"+NumToStr(var22+var33*0.118,표시소숫점자리수));
value3 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.236," +23.6%:"+NumToStr(var22+var33*0.236,표시소숫점자리수));
value4 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.382," +38.2%:"+NumToStr(var22+var33*0.382,표시소숫점자리수));
value5 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.500," +50.0%:"+NumToStr(var22+var33*0.500,표시소숫점자리수));
value6 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.618," +61.8%:"+NumToStr(var22+var33*0.618,표시소숫점자리수));
value7 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.764," +76.4%:"+NumToStr(var22+var33*0.764,표시소숫점자리수));
value8 = Text_New(NextBarSdate,NextBarStime,var22+var33*0.882," +88.2%:"+NumToStr(var22+var33*0.882,표시소숫점자리수));
value9 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.000," +100.0%:"+NumToStr(var22+var33*1.000,표시소숫점자리수));
value10 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.236," +123.6%:"+NumToStr(var22+var33*1.236,표시소숫점자리수));
value11 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.382," +138.2%:"+NumToStr(var22+var33*1.382,표시소숫점자리수));
value12 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.500," +150.0%:"+NumToStr(var22+var33*1.500,표시소숫점자리수));
value13 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.618," +161.8%:"+NumToStr(var22+var33*1.618,표시소숫점자리수));
value14 = Text_New(NextBarSdate,NextBarStime,var22+var33*1.764," +176.4%:"+NumToStr(var22+var33*1.764,표시소숫점자리수));
value15 = Text_New(NextBarSdate,NextBarStime,var22+var33*2.000," +200.%:"+NumToStr(var22+var33*2.000,표시소숫점자리수));
value16 = Text_New(NextBarSdate,NextBarStime,var22-var33*0.236," -23.6%:"+NumToStr(var22-var33*0.236,표시소숫점자리수));
value17 = Text_New(NextBarSdate,NextBarStime,var22-var33*0.382," -38.2%:"+NumToStr(var22-var33*0.382,표시소숫점자리수));
value18 = Text_New(NextBarSdate,NextBarStime,var22-var33*0.500," -50.0%:"+NumToStr(var22-var33*0.500,표시소숫점자리수));
value19 = Text_New(NextBarSdate,NextBarStime,var22-var33*0.618," -61.8%:"+NumToStr(var22-var33*0.618,표시소숫점자리수));
value20 = Text_New(NextBarSdate,NextBarStime,var22-var33*1.000," -100.0%:"+NumToStr(var22-var33*0.000,표시소숫점자리수));
Text_SetStyle(value1,0,0); //우측정렬, 아래정렬
Text_SetStyle(value2,0,0);
Text_SetStyle(value3,0,0);
Text_SetStyle(value4,0,0);
Text_SetStyle(value5,0,0);
Text_SetStyle(value6,0,0);
Text_SetStyle(value7,0,0);
Text_SetStyle(value8,0,0);
Text_SetStyle(value9,0,0);
Text_SetStyle(value10,0,0);
Text_SetStyle(value11,0,0);
Text_SetStyle(value12,0,0);
Text_SetStyle(value13,0,0);
Text_SetStyle(value14,0,0);
Text_SetStyle(value15,0,0);
Text_SetStyle(value16,0,0);
Text_SetStyle(value17,0,0);
Text_SetStyle(value18,0,0);
Text_SetStyle(value19,0,0);
Text_SetStyle(value20,0,0);
}
즐거운 하루되세요
> 더월 님이 쓴 글입니다.
> 제목 : Re : 확인좀 부탁드립니다.
> if (sdate != sdate[1] and stime >= 233000) or
(sdate == sdate[1] and stime >= 233000 and stime[1] < 233000) Then
{
var1 = h;
var2 = l;
var11 = var1[1];
var22 = var2[1];
var33 = var3[1];
}
if h > var1 Then
var1 = h ;
if l < var2 Then
var2 = l;
var3 = var1-var2;
if var11 > 0 and var22 > 0 then
{
plot1(var22+var33*0.000,"기준");
plot2(var22+var33*0.118,"+118");
plot3(var22+var33*0.236,"+236");
plot4(var22+var33*0.382,"+382");
plot5(var22+var33*0.500,"+500");
plot6(var22+var33*0.618,"+618");
plot7(var22+var33*0.764,"+764");
plot8(var22+var33*0.882,"+882");
plot9(var22+var33*1.000,"+100");
plot10(var22+var33*1.236,"+1.236");
plot11(var22+var33*1.382,"+1.382");
plot12(var22+var33*1.500,"+1.500");
plot13(var22+var33*1.618,"+1.618");
plot14(var22+var33*1.764,"+1.764");
plot15(var22+var33*2.000,"+2.000");
plot16(var22-var33*0.236,"-236");
plot17(var22-var33*0.382,"-382");
plot18(var22-var33*0.500,"-500");
plot19(var22-var33*0.618,"-618");
plot20(var22-var33*1.000,"-100");
Text_Delete(value1);
Text_Delete(value2);
Text_Delete(value3);
Text_Delete(value4);
Text_Delete(value5);
Text_Delete(value6);
Text_Delete(value7);
Text_Delete(value8);
Text_Delete(value9);
Text_Delete(value10);
Text_Delete(value11);
Text_Delete(value12);
Text_Delete(value13);
Text_Delete(value14);
Text_Delete(value15);
Text_Delete(value16);
Text_Delete(value17);
Text_Delete(value18);
Text_Delete(value19);
Text_Delete(value20);
value1 = Text_New(sdate,stime,var22+var33*0.000,"+0%");
value2 = Text_New(sdate,stime,var22+var33*0.118,"+11.8%");
value3 = Text_New(sdate,stime,var22+var33*0.236,"+23.6%");
value4 = Text_New(sdate,stime,var22+var33*0.382,"+38.2%");
value5 = Text_New(sdate,stime,var22+var33*0.500,"+50.0%");
value6 = Text_New(sdate,stime,var22+var33*0.618,"+61.8%");
value7 = Text_New(sdate,stime,var22+var33*0.764,"+76.4%");
value8 = Text_New(sdate,stime,var22+var33*0.882,"+88.2%");
value9 = Text_New(sdate,stime,var22+var33*1.000,"+100.0%");
value10 = Text_New(sdate,stime,var22+var33*1.236,"+123.6%");
value11 = Text_New(sdate,stime,var22+var33*1.382,"+138.2%");
value12 = Text_New(sdate,stime,var22+var33*1.500,"+150.0%");
value13 = Text_New(sdate,stime,var22+var33*1.618,"+161.8%");
value14 = Text_New(sdate,stime,var22+var33*1.764,"+176.4%");
value15 = Text_New(sdate,stime,var22+var33*2.000,"+200.%");
value16 = Text_New(sdate,stime,var22-var33*0.236,"-23.6%");
value17 = Text_New(sdate,stime,var22-var33*0.382,"-38.2%");
value18 = Text_New(sdate,stime,var22-var33*0.500,"-50.0%");
value19 = Text_New(sdate,stime,var22-var33*0.618,"-61.8%");
value20 = Text_New(sdate,stime,var22-var33*1.000,"-100.0%");
}