커뮤니티

지표문의 드립니다.

프로필 이미지
부활
2026-02-09 16:49:51
185
글번호 230474
답변완료


안녕하세요.


아래 수식은 첨부파일의 수식인데


화살표시 한 것 처럼 파라볼릭표시가 바뀐 구간의 중간값을 구하는 수식을 부탁드립니다.

(1. 음->양, 양->음 변동된 파라볼릭 가격의 중간값을 원합니다.

2. 그리고 파라볼릭 변화된 봉을 검색할 수 있도록 검색식도 부탁드립니다.)


input : 가속도(0.02),최대가속도(0.2);

var : maxMin(nan),acceleration(nan),Trend(0);

var : FirstTrendBar(false),Para(nan);

var : haClose(0),haOpen(0),haHigh(0),haLow(0);


haClose = (O+H+L+C)/4;

haOpen = open;

haHigh = MaxList( high, haOpen, haClose);

haLow = MinList( low, haOpen,haClose);


var1 = Data1((O+H+L+C)/4);

Var2 = Data1(open);

Var3 = Data1(MaxList( high, haOpen, haClose));

Var4 = Data1(MinList( low, haOpen,haClose));


#Heiken Ashi 시고저종

if index == 0 then

{

var1 = Data1((O+H+L+C)/4);

Var2 = data1(open);

Var3 = data1(MaxList( high, haOpen, haClose));

Var4 = data1(MinList( low, haOpen,haClose));

}

else

{

var1 = Data1((O+H+L+C)/4);

Var2 = data1(open);

Var3 = data1(MaxList( high, haOpen, haClose));

Var4 = data1(MinList( low, haOpen,haClose));

}


// 매봉 False로 시작하고

// 아래 로직에 의해 추세가 전환되는 첫봉이면 true로 변경

FirstTrendBar = False;


// 2번째봉)에서 초기화

if Index == 1 Then

{

if var1 > var1[1] Then // 상승 추세 시작

{

Trend = 1; //상승추세란 의미로 1

maxMin = Var3; // 극단값으로 high로 저장

Para = Var4[1]; // 초기 SAR를 전봉 저가로 설정

}

else // 하락 추세 시작

{

Trend = -1; //하락추세란 의미로 -1

maxMin = Var4; // 극단값으로 low로 저장

Para = Var3[1]; // 초기 SAR를 전봉 고가로 설정

}

FirstTrendBar = true; //추세전환

acceleration = 가속도; // 가속도 초기화

}


//파라볼릭 = 직전파라볼릭값 + AF * (극단 - 직전파라볼릭값)

Para = Para + acceleration * (maxMin - Para);



//상승추세

if Trend == 1 Then

{

//저가가 파라볼릭보다 작으면

if Para > Var4 then

{

//하락전환

Trend = -1;

//하락전환 첫봉발생

FirstTrendBar = true;

//파라볼릭값은 고가와 극단값 중 큰값

Para = max(Var3, maxmin);

//극단값으로 저가로 변경 저장

maxMin = Var4;

//가속도 초기화

acceleration = 가속도;

}

}

else //하락추세

{

//고가가 파라볼릭보다 크면

if Para < var3 Then

{

//상승전환

Trend = 1;

//상승전환 첫봉발생

FirstTrendBar = true;

//파라볼릭은 저가와 극단값 중 작은값

Para = min(Var4, maxMin);

//극단값을 고가로 변경 저장

maxMin = Var3;

//가속도 초기화

acceleration = 가속도;

}

}


//추세전환 첫봉이 아니면

if FirstTrendBar == False Then

{

//상승추세

if Trend == 1 Then

{

///고가가 극단값보다 크면

if Var3 > maxMin Then

{

//극단값으로 고가저장

maxMin = Var3;

//가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가

acceleration = min(acceleration + 가속도, 최대가속도);

}

}

else //하락추세

{

///저가가 극단값보다 작으면

if Halow < maxMin Then

{

//극단값으로 저가 저장

maxMin = Var4;

//가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가

acceleration = min(acceleration + 가속도, 최대가속도);

}

}

}



//상승추세

if Trend == 1 Then

{

// 상승추세이면 파라볼릭은 최근 1~2봉의 저가보다 작거나 같아야 함

Para = min(Para, Var4[1]);


if Index > 1 Then

Para = min(Para, Var4[2]);

}

else

{

// 하락추세이면 파라볼릭은 최근 1~2봉의 고가보다 크거나 같아야 함

Para = max(Para, Var3[1]);

if Index > 1 Then

Para = max(Para, Var3[2]);

}


//지표속상창 차트표시탭에서 그래프 종류를 점그래프로 설정

plot4(para,"파리볼릭",IFf(C>Para,Red,Blue));


if bDate != bDate[1] Then


var11 = plot4;


#plot5(var11[1]);



if date != date[1] Then


var12 = plot4;


#plot5(var12);


지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-02-10 10:23:19

안녕하세요 예스스탁입니다. 1 input : 가속도(0.02),최대가속도(0.2); var : maxMin(nan),acceleration(nan),Trend(0); var : FirstTrendBar(false),Para(nan); var : haClose(0),haOpen(0),haHigh(0),haLow(0); haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); var1 = Data1((O+H+L+C)/4); Var2 = Data1(open); Var3 = Data1(MaxList( high, haOpen, haClose)); Var4 = Data1(MinList( low, haOpen,haClose)); #Heiken Ashi 시고저종 if index == 0 then { var1 = Data1((O+H+L+C)/4); Var2 = data1(open); Var3 = data1(MaxList( high, haOpen, haClose)); Var4 = data1(MinList( low, haOpen,haClose)); } else { var1 = Data1((O+H+L+C)/4); Var2 = data1(open); Var3 = data1(MaxList( high, haOpen, haClose)); Var4 = data1(MinList( low, haOpen,haClose)); } // 매봉 False로 시작하고 // 아래 로직에 의해 추세가 전환되는 첫봉이면 true로 변경 FirstTrendBar = False; // 2번째봉)에서 초기화 if Index == 1 Then { if var1 > var1[1] Then // 상승 추세 시작 { Trend = 1; //상승추세란 의미로 1 maxMin = Var3; // 극단값으로 high로 저장 Para = Var4[1]; // 초기 SAR를 전봉 저가로 설정 } else // 하락 추세 시작 { Trend = -1; //하락추세란 의미로 -1 maxMin = Var4; // 극단값으로 low로 저장 Para = Var3[1]; // 초기 SAR를 전봉 고가로 설정 } FirstTrendBar = true; //추세전환 acceleration = 가속도; // 가속도 초기화 } //파라볼릭 = 직전파라볼릭값 + AF * (극단 - 직전파라볼릭값) Para = Para + acceleration * (maxMin - Para); //상승추세 if Trend == 1 Then { //저가가 파라볼릭보다 작으면 if Para > Var4 then { //하락전환 Trend = -1; //하락전환 첫봉발생 FirstTrendBar = true; //파라볼릭값은 고가와 극단값 중 큰값 Para = max(Var3, maxmin); //극단값으로 저가로 변경 저장 maxMin = Var4; //가속도 초기화 acceleration = 가속도; } } else //하락추세 { //고가가 파라볼릭보다 크면 if Para < var3 Then { //상승전환 Trend = 1; //상승전환 첫봉발생 FirstTrendBar = true; //파라볼릭은 저가와 극단값 중 작은값 Para = min(Var4, maxMin); //극단값을 고가로 변경 저장 maxMin = Var3; //가속도 초기화 acceleration = 가속도; } } //추세전환 첫봉이 아니면 if FirstTrendBar == False Then { //상승추세 if Trend == 1 Then { ///고가가 극단값보다 크면 if Var3 > maxMin Then { //극단값으로 고가저장 maxMin = Var3; //가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가 acceleration = min(acceleration + 가속도, 최대가속도); } } else //하락추세 { ///저가가 극단값보다 작으면 if Halow < maxMin Then { //극단값으로 저가 저장 maxMin = Var4; //가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가 acceleration = min(acceleration + 가속도, 최대가속도); } } } //상승추세 if Trend == 1 Then { // 상승추세이면 파라볼릭은 최근 1~2봉의 저가보다 작거나 같아야 함 Para = min(Para, Var4[1]); if Index > 1 Then Para = min(Para, Var4[2]); } else { // 하락추세이면 파라볼릭은 최근 1~2봉의 고가보다 크거나 같아야 함 Para = max(Para, Var3[1]); if Index > 1 Then Para = max(Para, Var3[2]); } //지표속상창 차트표시탭에서 그래프 종류를 점그래프로 설정 plot4(para,"파리볼릭",IFf(C>Para,Red,Blue)); if bDate != bDate[1] Then var11 = plot4; #plot5(var11[1]); if date != date[1] Then var12 = plot4; #plot5(var12); var : mid(0); if CrossUp(C,para) Then mid = (para+para[1])/2; if CrossDown(C,para) Then mid = (para+para[1])/2; Plot6(mid,"중간",IFf(C>Para,Red,Blue)); 2. 종목검색 input : 가속도(0.02),최대가속도(0.2); var : maxMin(nan),acceleration(nan),Trend(0); var : FirstTrendBar(false),Para(nan); var : haClose(0),haOpen(0),haHigh(0),haLow(0); haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); var1 = Data1((O+H+L+C)/4); Var2 = Data1(open); Var3 = Data1(MaxList( high, haOpen, haClose)); Var4 = Data1(MinList( low, haOpen,haClose)); #Heiken Ashi 시고저종 if index == 0 then { var1 = Data1((O+H+L+C)/4); Var2 = data1(open); Var3 = data1(MaxList( high, haOpen, haClose)); Var4 = data1(MinList( low, haOpen,haClose)); } else { var1 = Data1((O+H+L+C)/4); Var2 = data1(open); Var3 = data1(MaxList( high, haOpen, haClose)); Var4 = data1(MinList( low, haOpen,haClose)); } // 매봉 False로 시작하고 // 아래 로직에 의해 추세가 전환되는 첫봉이면 true로 변경 FirstTrendBar = False; // 2번째봉)에서 초기화 if Index == 1 Then { if var1 > var1[1] Then // 상승 추세 시작 { Trend = 1; //상승추세란 의미로 1 maxMin = Var3; // 극단값으로 high로 저장 Para = Var4[1]; // 초기 SAR를 전봉 저가로 설정 } else // 하락 추세 시작 { Trend = -1; //하락추세란 의미로 -1 maxMin = Var4; // 극단값으로 low로 저장 Para = Var3[1]; // 초기 SAR를 전봉 고가로 설정 } FirstTrendBar = true; //추세전환 acceleration = 가속도; // 가속도 초기화 } //파라볼릭 = 직전파라볼릭값 + AF * (극단 - 직전파라볼릭값) Para = Para + acceleration * (maxMin - Para); //상승추세 if Trend == 1 Then { //저가가 파라볼릭보다 작으면 if Para > Var4 then { //하락전환 Trend = -1; //하락전환 첫봉발생 FirstTrendBar = true; //파라볼릭값은 고가와 극단값 중 큰값 Para = max(Var3, maxmin); //극단값으로 저가로 변경 저장 maxMin = Var4; //가속도 초기화 acceleration = 가속도; } } else //하락추세 { //고가가 파라볼릭보다 크면 if Para < var3 Then { //상승전환 Trend = 1; //상승전환 첫봉발생 FirstTrendBar = true; //파라볼릭은 저가와 극단값 중 작은값 Para = min(Var4, maxMin); //극단값을 고가로 변경 저장 maxMin = Var3; //가속도 초기화 acceleration = 가속도; } } //추세전환 첫봉이 아니면 if FirstTrendBar == False Then { //상승추세 if Trend == 1 Then { ///고가가 극단값보다 크면 if Var3 > maxMin Then { //극단값으로 고가저장 maxMin = Var3; //가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가 acceleration = min(acceleration + 가속도, 최대가속도); } } else //하락추세 { ///저가가 극단값보다 작으면 if Halow < maxMin Then { //극단값으로 저가 저장 maxMin = Var4; //가속도값을 가속도만큼 증가하는데 최대가속도까지만 증가 acceleration = min(acceleration + 가속도, 최대가속도); } } } //상승추세 if Trend == 1 Then { // 상승추세이면 파라볼릭은 최근 1~2봉의 저가보다 작거나 같아야 함 Para = min(Para, Var4[1]); if Index > 1 Then Para = min(Para, Var4[2]); } else { // 하락추세이면 파라볼릭은 최근 1~2봉의 고가보다 크거나 같아야 함 Para = max(Para, Var3[1]); if Index > 1 Then Para = max(Para, Var3[2]); } if CrossUp(C,para) or CrossDown(c,para) Then Find(1); 새해 복 많이 받으시고 즐거운 명절 보내시기 바랍니다.