커뮤니티

수식수정 부탁드립니다

프로필 이미지
해피오
2026-01-12 15:56:43
77
글번호 229732
답변완료

2026.01.09자 글번호 229685와 관련된 것으로 일부 지표 수정과 신호검색 수식을 요청드립니다.


Input : 가격(C), 단순P1(5), 단순P2(10), 단순P3(20), 지수P1(5), 지수P2(10), 지수P3(20);

Input : HL기간(60),저고상승율(0.35),음봉검토기간(5),기준가격(C),이탈경과기간(10),H검토봉수(10),L검토봉수(33),골드표시가격((C+O)/2),골드저가봉수(20);

var : Ma5(0),Ma10(0),Ma20(0),eMa5(0),eMa10(0),eMa20(0),HH(0),LL(0);

var : 고가위치(Nan),저가위치(nan),상승추세(false),저고변동폭(False);

var : 데드1020(False),골드1020(False),음봉10이탈(False),음봉20이탈(False),음봉이탈시가(0),최고이탈시가(0);

var : TargetPrice(0),MainCond(False),LLine(0),BS(Nan),CS(Nan),NoBreak(False),FinalCond(False);

var: DC(0),DH(0),DL(0),GdC(0),DGL(0);


Ma5 = ma(가격,단순P1); #5단순이평

Ma10 = ma(가격,단순P2); #10단순이평

Ma20 = ma(가격,단순P3); #20단순이평

eMa5 = ema(가격,지수P1); #5지수이평

eMa10 = ema(가격,지수P2); #10지수이평

eMa20 = ema(가격,지수P3); #20지수이평

HH = Highest(H,HL기간); #L장기간(60)의 H고가격 표시

LL = Lowest(L,HL기간); #L장기간(60)의 L저가격 표시


if H == HH Then #키움수식- 고가위치 = BarsSince(H == HH); 변환

고가위치 = 0;

Else

고가위치 = 고가위치+1;

if L == LL Then #키움수식- 저가위치 = BarsSince(L == LL); 변환

저가위치 = 0;

Else

저가위치 = 저가위치+1;


상승추세 = 저가위치 > 고가위치;

저고변동폭 = (HH - LL) /LL >= 저고상승율/100;

데드1020 = CrossDown(Ma10, Ma20);

골드1020 = CrossUp(Ma10, Ma20);

음봉10이탈 = C < Ma10 && O > Ma10;

음봉20이탈 = C < Ma20 && O > Ma20;

음봉이탈시가 = iff(음봉20이탈, O, 0); //이탈캔들이면 시가(O), 아니면 0

최고이탈시가 = Highest(음봉이탈시가, 음봉검토기간);

TargetPrice = iff(C < Ma20, 최고이탈시가, 기준가격);

MainCond = 데드1020 && 상승추세 && 저고변동폭 && TargetPrice > 0;


if MainCond Then

{

LLine = Lowest(L, L검토봉수);

BS = 0;

CS = 0;

}

Else

BS = BS+1; //데드(MainCond) 발생 후 경과된 봉 수-#키움수식- BarsSince(MainCond); 변환


if C < LLine Then //데드 이후 종가가 LLine를 깨면 CS증가시킴

CS = CS+1;

NoBreak = CS == 0; #키움수식- CountSince(MainCond, C < Line3) == 0; 변환

FinalCond = 골드1020 && NoBreak && BS > 이탈경과기간; // 골드발생 + 저점지지 + 데드발생후 10봉 이상 경과(BS >= 10)


#====================================================================

if MainCond Then

{

DC = TargetPrice; #"기준D20선잉태음봉가격라인"

DH = highest(H,H검토봉수); #"기준D기준10봉최고가라인"

DL = lowest(L,L검토봉수); #"기준D기준30봉최저가라인"

}


if finalCond Then

{

GdC = 골드표시가격 ;

DGL = lowest(L,골드저가봉수);

}


if DC > 0 Then

Plot1(DC, "기준D20선잉태음봉가격라인");

if DH > 0 Then

Plot2(DH, "기준D기준10봉최고가라인");

if DL > 0 Then

Plot3(DL, "기준D기준30봉최저가라인");

if GdC > 0 Then

Plot4(GdC, "골드발생표시가격라인");

if DGL > 0 Then

Plot5(DGL, "기준D와G사이최저가라인");

if 저가위치 > 고가위치 and 저고변동폭 Then

plot6(HH, "상승추세율연동H라인");

if 저가위치 < 고가위치 and 저고변동폭 Then

plot7(LL, "하락추세율연동L라인");


가. 지표수정 요청사항

- Plot5(DGL, "기준D와G사이최저가라인"); 와 관련된 것으로 지금처럼 단순히 골드발생시로부터 최근 <골드저가봉수>동안의 최저가를

구하고자 하는게 아니고, <Plot1(DC, "기준D20선잉태음봉가격라인");>발생시점으로부터 <Plot4(GdC, "골드발생표시가격라인");>발생시점

사이에 있는 최저가의 라인을 표시하고자 하는 것입니다. 이 라인은 Plot1과 Plot4의 변동에 따라 계속적으로 변동될 것입니다.

수정 부탁드립니다.


나. 신호수식 요청사항

1. MainCond발생으로 생성된 TargetPrice이후 처음으로 발생된 음봉과 이후 이 첫음봉의 고가보다 넢은 위치에서의 양봉후 음봉시에도 매도신호 발생시킴.

단. 종가로 <기준D기준10봉최고가라인> 돌파되면 신호 생성하면 안됨

2. H>TargetPrice && C<TargetPrice인 음봉에 매도신호. 단. 이신호는 TargetPrice발생이후 10봉이내에 발생되어야 하며, 종가로 <기준D기준10봉최고가라인>

돌파되면 신호 생성하면 안됨

3. FinalCond발생이후 첫음봉이면서 고가가 20이평선보다 클때 매도신호. 단,종가로 <기준D기준10봉최고가라인> 돌파하거나

종가로 <기준D기준30봉최저가라인>을 이탈하면 신호발생되면 안됨

4. 1번,2번,3번 신호가 각각 발생한 이후 <기준D기준30봉최저가라인>이나 <기준D와G사이최저가라인>을 종가상 이탈한 후 처음 발생되는

양봉에 매수신호 발생되게 하는 수식


성실히 응대해주심에 항상 감사드립니다


검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-01-13 15:12:57

안녕하세요 예스스탁입니다. 1 Input : 가격(C), 단순P1(5), 단순P2(10), 단순P3(20), 지수P1(5), 지수P2(10), 지수P3(20); Input : HL기간(60),저고상승율(0.35),음봉검토기간(5),기준가격(C),이탈경과기간(10),H검토봉수(10),L검토봉수(33),골드표시가격((C+O)/2),골드저가봉수(20); var : Ma5(0),Ma10(0),Ma20(0),eMa5(0),eMa10(0),eMa20(0),HH(0),LL(0); var : 고가위치(Nan),저가위치(nan),상승추세(false),저고변동폭(False); var : 데드1020(False),골드1020(False),음봉10이탈(False),음봉20이탈(False),음봉이탈시가(0),최고이탈시가(0); var : TargetPrice(0),MainCond(False),LLine(0),BS(Nan),CS(Nan),NoBreak(False),FinalCond(False); var: DC(0),DH(0),DL(0),GdC(0),DGL(0); Ma5 = ma(가격,단순P1); #5단순이평 Ma10 = ma(가격,단순P2); #10단순이평 Ma20 = ma(가격,단순P3); #20단순이평 eMa5 = ema(가격,지수P1); #5지수이평 eMa10 = ema(가격,지수P2); #10지수이평 eMa20 = ema(가격,지수P3); #20지수이평 HH = Highest(H,HL기간); #L장기간(60)의 H고가격 표시 LL = Lowest(L,HL기간); #L장기간(60)의 L저가격 표시 if H == HH Then #키움수식- 고가위치 = BarsSince(H == HH); 변환 고가위치 = 0; Else 고가위치 = 고가위치+1; if L == LL Then #키움수식- 저가위치 = BarsSince(L == LL); 변환 저가위치 = 0; Else 저가위치 = 저가위치+1; 상승추세 = 저가위치 > 고가위치; 저고변동폭 = (HH - LL) /LL >= 저고상승율/100; 데드1020 = CrossDown(Ma10, Ma20); 골드1020 = CrossUp(Ma10, Ma20); 음봉10이탈 = C < Ma10 && O > Ma10; 음봉20이탈 = C < Ma20 && O > Ma20; 음봉이탈시가 = iff(음봉20이탈, O, 0); //이탈캔들이면 시가(O), 아니면 0 최고이탈시가 = Highest(음봉이탈시가, 음봉검토기간); TargetPrice = iff(C < Ma20, 최고이탈시가, 기준가격); MainCond = 데드1020 && 상승추세 && 저고변동폭 && TargetPrice > 0; if MainCond Then { LLine = Lowest(L, L검토봉수); BS = 0; CS = 0; } Else BS = BS+1; //데드(MainCond) 발생 후 경과된 봉 수-#키움수식- BarsSince(MainCond); 변환 if C < LLine Then //데드 이후 종가가 LLine를 깨면 CS증가시킴 CS = CS+1; NoBreak = CS == 0; #키움수식- CountSince(MainCond, C < Line3) == 0; 변환 FinalCond = 골드1020 && NoBreak && BS > 이탈경과기간; // 골드발생 + 저점지지 + 데드발생후 10봉 이상 경과(BS >= 10) #==================================================================== var : LLL(Nan); if MainCond Then { DC = TargetPrice; #"기준D20선잉태음봉가격라인" DH = highest(H,H검토봉수); #"기준D기준10봉최고가라인" DL = lowest(L,L검토봉수); #"기준D기준30봉최저가라인" LLL = L; } Else { if L < LLL Then LLL = L; } if finalCond Then { GdC = 골드표시가격 ; DGL = LLL; } if DC > 0 Then Plot1(DC, "기준D20선잉태음봉가격라인"); if DH > 0 Then Plot2(DH, "기준D기준10봉최고가라인"); if DL > 0 Then Plot3(DL, "기준D기준30봉최저가라인"); if GdC > 0 Then Plot4(GdC, "골드발생표시가격라인"); if DGL > 0 Then Plot5(DGL, "기준D와G사이최저가라인"); if 저가위치 > 고가위치 and 저고변동폭 Then plot6(HH, "상승추세율연동H라인"); if 저가위치 < 고가위치 and 저고변동폭 Then plot7(LL, "하락추세율연동L라인"); 2 Input : 가격(C), 단순P1(5), 단순P2(10), 단순P3(20), 지수P1(5), 지수P2(10), 지수P3(20); Input : HL기간(60),저고상승율(0.35),음봉검토기간(5),기준가격(C),이탈경과기간(10),H검토봉수(10),L검토봉수(33),골드표시가격((C+O)/2),골드저가봉수(20); var : Ma5(0),Ma10(0),Ma20(0),eMa5(0),eMa10(0),eMa20(0),HH(0),LL(0); var : 고가위치(Nan),저가위치(nan),상승추세(false),저고변동폭(False); var : 데드1020(False),골드1020(False),음봉10이탈(False),음봉20이탈(False),음봉이탈시가(0),최고이탈시가(0); var : TargetPrice(0),MainCond(False),LLine(0),BS(Nan),CS(Nan),NoBreak(False),FinalCond(False); var: DC(0),DH(0),DL(0),GdC(0),DGL(0); Ma5 = ma(가격,단순P1); #5단순이평 Ma10 = ma(가격,단순P2); #10단순이평 Ma20 = ma(가격,단순P3); #20단순이평 eMa5 = ema(가격,지수P1); #5지수이평 eMa10 = ema(가격,지수P2); #10지수이평 eMa20 = ema(가격,지수P3); #20지수이평 HH = Highest(H,HL기간); #L장기간(60)의 H고가격 표시 LL = Lowest(L,HL기간); #L장기간(60)의 L저가격 표시 if H == HH Then #키움수식- 고가위치 = BarsSince(H == HH); 변환 고가위치 = 0; Else 고가위치 = 고가위치+1; if L == LL Then #키움수식- 저가위치 = BarsSince(L == LL); 변환 저가위치 = 0; Else 저가위치 = 저가위치+1; 상승추세 = 저가위치 > 고가위치; 저고변동폭 = (HH - LL) /LL >= 저고상승율/100; 데드1020 = CrossDown(Ma10, Ma20); 골드1020 = CrossUp(Ma10, Ma20); 음봉10이탈 = C < Ma10 && O > Ma10; 음봉20이탈 = C < Ma20 && O > Ma20; 음봉이탈시가 = iff(음봉20이탈, O, 0); //이탈캔들이면 시가(O), 아니면 0 최고이탈시가 = Highest(음봉이탈시가, 음봉검토기간); TargetPrice = iff(C < Ma20, 최고이탈시가, 기준가격); MainCond = 데드1020 && 상승추세 && 저고변동폭 && TargetPrice > 0; if MainCond Then { LLine = Lowest(L, L검토봉수); BS = 0; CS = 0; } Else BS = BS+1; //데드(MainCond) 발생 후 경과된 봉 수-#키움수식- BarsSince(MainCond); 변환 if C < LLine Then //데드 이후 종가가 LLine를 깨면 CS증가시킴 CS = CS+1; NoBreak = CS == 0; #키움수식- CountSince(MainCond, C < Line3) == 0; 변환 FinalCond = 골드1020 && NoBreak && BS > 이탈경과기간; // 골드발생 + 저점지지 + 데드발생후 10봉 이상 경과(BS >= 10) #==================================================================== var : LLL(Nan),iii(0),T1(0),S1(0),T2(0),i2(0),t3(0); if MainCond Then { DC = TargetPrice; #"기준D20선잉태음봉가격라인" DH = highest(H,H검토봉수); #"기준D기준10봉최고가라인" DL = lowest(L,L검토봉수); #"기준D기준30봉최저가라인" LLL = L; T1 = 1; S1 = 0; i2 = Index; T2 = 1; } Else { if L < LLL Then LLL = L; if T1 == 1 and C < O Then { T1 = 2; S1 = H; } if T1 == 2 and C > O and C > S1 Then T1 = 3; if T1 == 3 and C < O Then Sell("s1"); if T2 == 1 and C > DH Then T2 = 0; if T2 == 1 and Index <= i2+10 and H>TargetPrice && C<TargetPrice and C < O Then { T2 = 2; Sell(); } } if finalCond Then { GdC = 골드표시가격 ; DGL = LLL; t3 = 1; } Else { if t3 == 1 and (c < DL or C < DGL) Then t3 = 1; if t3 == 1 and C < O Then { T3 = 2; if h > ma(c,20) Then Sell("s3"); } } if MarketPosition == -1 and C < DL or C < DGL Then ExitShort("청산"); 즐거운 하루 되세요