커뮤니티
수식수정부탁드립니다
2019-10-14 01:35:54
428
글번호 132733
#,안녕하세요
아래식은 관리자님이 도움주신 식을 응용한 수식입니다,이식을 그림파일 예처럼 약간 수정
하면 좋겠습니다,
$,아래수식의 다이버젼스 표기조건 방식을 쌍바닥패턴(양봉시가,음봉종가의+-5틱범위)이거나
쌍고패턴(양봉종가,음봉시가의+-5틱범위)일때만 다이버젼스 조건을 충족하는 표시를 하고
싶습니다.
도움 부탁드립니다.
Input : Period(9), signal(9),굵기(1);
Var : RSIv(0), RSIS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
RSIV = RSI(Period);
RSIS = ma(RSIV,signal);
if crossup(RSIV,RSIS) Then
{
T = 1;
HIV = RSIV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(RSIV,RSIS) Then
{
T = -1;
LIV = RSIV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if RSIV > HIV Then
{
HIV = RSIV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if RSIV < LIV Then
{
LIV = RSIV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE));
plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED));
PlotBaseLine1(30, "기준선 30");
PlotBaseLine2(70, "기준선 70");
PlotBaseLine3(50);
$$,항상 고맙습니다.
- 1. 다이버.png (0.02 MB)
답변 1
예스스탁 예스스탁 답변
2019-10-14 10:24:04
안녕하세요
예스스탁입니다.
고점은 종가와 시가중 큰값, 저점은 종가와 시가중 작은값을 기준으로 계산하게 변경했습니다.
각 이전값 대비 +-틱이내이면 다이버젼수 표시가 됩니다.
Input : Period(9), signal(9),굵기(1);
Var : RSIv(0), RSIS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
RSIV = RSI(Period);
RSIS = ma(RSIV,signal);
if crossup(RSIV,RSIS) Then
{
T = 1;
HIV = RSIV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = max(C,O);
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(RSIV,RSIS) Then
{
T = -1;
LIV = RSIV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = min(C,O);
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if RSIV > HIV Then
{
HIV = RSIV;
HID = sdate;
HIT = stime;
}
if max(C,O) > HPV Then
{
HPV = max(C,O);
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and abs(HPV-HPV1) <= PriceScale*5 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if RSIV < LIV Then
{
LIV = RSIV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = min(C,O);
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and abs(LPV-LPV1) <= PriceScale*5 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE));
plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED));
PlotBaseLine1(30, "기준선 30");
PlotBaseLine2(70, "기준선 70");
PlotBaseLine3(50);
즐거운 하루되세요
> 골든키 님이 쓴 글입니다.
> 제목 : 수식수정부탁드립니다
> #,안녕하세요
아래식은 관리자님이 도움주신 식을 응용한 수식입니다,이식을 그림파일 예처럼 약간 수정
하면 좋겠습니다,
$,아래수식의 다이버젼스 표기조건 방식을 쌍바닥패턴(양봉시가,음봉종가의+-5틱범위)이거나
쌍고패턴(양봉종가,음봉시가의+-5틱범위)일때만 다이버젼스 조건을 충족하는 표시를 하고
싶습니다.
도움 부탁드립니다.
Input : Period(9), signal(9),굵기(1);
Var : RSIv(0), RSIS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
RSIV = RSI(Period);
RSIS = ma(RSIV,signal);
if crossup(RSIV,RSIS) Then
{
T = 1;
HIV = RSIV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(RSIV,RSIS) Then
{
T = -1;
LIV = RSIV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if RSIV > HIV Then
{
HIV = RSIV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if RSIV < LIV Then
{
LIV = RSIV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE));
plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED));
PlotBaseLine1(30, "기준선 30");
PlotBaseLine2(70, "기준선 70");
PlotBaseLine3(50);
$$,항상 고맙습니다.