커뮤니티
지표문의 드립니다.

안녕하세요.
아래 수식은 첨부파일의 수식인데
화살표시 한 것 처럼 파라볼릭표시가 바뀐 구간의 중간값을 구하는 수식을 부탁드립니다.
(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