예스스탁
예스스탁 답변
2022-12-26 17:02:49
안녕하세요
예스스탁입니다.
1
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then
{
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
TX1 = Text_new(var5, var7, L, "★");
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
TXi1 = Text_New_Self(var5, var7, var1, "★");
Text_SetColor(Txi1,Magenta);
Text_SetStyle(Txi1,0,0);
}
if CrossUp(RSIPL, DnBand) then
{
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
TXi3 = Text_New_Self(sdate, stime, RSIPL, "▲");
Text_SetColor(Txi3,rgb(160,70,255));
Text_SetStyle(Txi3,2,0);
}
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then
{
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
TX2 = Text_new(var15, var17, H, "★");
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
TXi2 = Text_New_Self(var15, var17, var11, "★");
Text_SetColor(Txi2,Lcyan);
Text_SetStyle(Txi2,0,1);
}
if CrossDown(RSIPL, UpBand) then
{
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
TXi4 = Text_New_Self(sdate, stime, RSIPL, "▼");
Text_SetColor(Txi4,Rgb(0,255,0));
Text_SetStyle(Txi4,2,1);
}
#
plot1(RSIPL, "RSIPL",Lgreen,def,0);
plot2(TSL,"TSL",red,def,0);
plot3(MidBand,"MidBand",magenta,def,0);
plot4(UpBand,"UpBand",blue,def,0);
plot5(DnBand,"DnBand",blue,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");
2
적용시 시스템 트레이딩 설정창의 비용/수량탭에서
매도진입신호 발생허용에 체크하고 적용하시면 됩니다.
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
#
if var9 == 1 then
buy("Div_Buy");
if CrossUp(RSIPL, DnBand) then
buy("PL_Buy");
if var19 == 1 then
Sell("Div_Sell");
if CrossDown(RSIPL, UpBand) then
Sell("PL_Sell");
3
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 60 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then
{
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
TX1 = Text_new(var5, var7, L, "★");
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
TXi1 = Text_New_Self(var5, var7, var1, "★");
Text_SetColor(Txi1,Magenta);
Text_SetStyle(Txi1,0,0);
}
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then
{
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
TXi3 = Text_New_Self(sdate, stime, stoK, "▲");
Text_SetColor(Txi3,rgb(160,70,255));
Text_SetStyle(Txi3,2,0);
}
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 40 then {//스토캐스틱 하락반전
var11 = StoK[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then
{
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
TX2 = Text_new(var15, var17, H, "★");
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
TXi2 = Text_New_Self(var15, var17, var11, "★");
Text_SetColor(Txi2,Lcyan);
Text_SetStyle(Txi2,0,1);
}
if CrossDown(stoK, 80) then
{
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
TXi4 = Text_New_Self(sdate, stime, stok, "▼");
Text_SetColor(Txi4,Rgb(0,255,0));
Text_SetStyle(Txi4,2,1);
}
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then
plot3(stoK, "상향돌파시점");
if CrossDown(StoK,80) then
plot4(StoK, "하락이탈시점");
if var9 == 1 then
plot5(stoK, "상승다이버전스");
if var19 == 1 then
plot6(stoK, "하락다이저번스");
4
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : TXi1(0),TXi2(0),TXi3(0),TXi4(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 60 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 40 then {//스토캐스틱 하락반전
var11 = StoK[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var9 == 1 then
buy("Div_Buy");
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then
buy("PL_Buy");
if var19 == 1 then
Sell("Div_Sell");
if CrossDown(stok,80) Then
Sell("PL_Sell");
즐거운 하루되세요
> qha71 님이 쓴 글입니다.
> 제목 : 수정 의뢰드립니다.
> 안녕하세요!
아래 첨부 파일은 다이버전스를 응용한 스토케스틱과 볼린저밴드등의 매매식들 입니다!
다름이 아니라 아래 수식들을 적용해 보았는데 원본과 다르게 나타나네요!
첨부파일 처럼 우측 원본과 동일하게 수식기호들이 나타나도록 수정을 부탁드립니다!
그리고 시스템식도 단방향으로만 나오는걸 양방향 거래가 되게 끔 수정을 부탁드립니다!
감사합니다!
--------------------------------------------------------------------
[지표식]
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then {
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TX1 = Text_new(var5, var7, L, "★");
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
}
if CrossUp(RSIPL, DnBand) then {
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
}
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then {
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TX2 = Text_new(var15, var17, H, "★");
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
}
if CrossDown(RSIPL, UpBand) then {
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
}
#
plot1(RSIPL, "RSIPL",Lgreen,def,0);
plot2(TSL,"TSL",red,def,0);
plot3(MidBand,"MidBand",magenta,def,0);
plot4(UpBand,"UpBand",blue,def,0);
plot5(DnBand,"DnBand",blue,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");
[시스템식]
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
#
if var9 == 1 then
buy("Div_Buy");
if CrossUp(RSIPL, DnBand) then
buy("PL_Buy");
if var19 == 1 then
exitlong("Div_EL");
if CrossDown(RSIPL, UpBand) then
exitlong("PL_EL");
-----------------------------------------------------------------
스토케스틱 다이버전스는 시스템 수식이 없습니다.
지표식만이라도 수정을 부탁드립니다.
[지표식]
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 60 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then {
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TX1 = Text_new(var5, var7, L, "★");
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
}
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then {
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
}
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 40 then {//스토캐스틱 하락반전
var11 = StoK[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then {
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TX2 = Text_new(var15, var17, H, "★");
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
}
if CrossDown(stoK, 80) then {
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
}
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then
plot3(stoK, "상향돌파시점");
if CrossDown(StoK,80) then
plot4(StoK, "하락이탈시점");
if var9 == 1 then
plot5(stoK, "상승다이버전스");
if var19 == 1 then
plot6(stoK, "하락다이저번스");