커뮤니티
지표만 갭보정 처리된 세븐바이너리MACD와 OSC
2011-06-08 00:49:35
673
글번호 39511
안녕하세요.
지난번
세븐 바이너리 웨이브 오실레이터의 수식을 의뢰하였고
답변주신대로 잘 쓰고 있습니다.
여기서 하나더,
분봉은 갭보정을 하지 않고
지표만 갭보정한
-세븐바이너리웨이브
-세븐바이너리웨이브MACD
-세븐바이너리웨이브오실레이터의 수식을 얻고 싶습니다.
참고로 일전에 주신 세븐바이너리osc를 올려드립니다.
===============================================
안녕하세요
예스스탁입니다.
죄송합니다. 오실레이터를 추가했습니다.
Input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(12), stoPeriod1(5),
stoPeriod2(3), CCIPeriod(9);
input: P1(12),P2(26),P3(9);
var: value(0),BW_SEVEN(0);
//문장1 : MACD가 MACD 시그널선 보다 큼
if ema(C,shortPeriod)-ema(C,longPeriod) >= ema(ema(C,shortPeriod)-ema(C,longPeriod),Period) then
value = 1;
else
value = -1;
//문장2 : 종가가 이동평균선보다 큼
if C >= ma(C, maPeriod) then
value = value + 1;
else
value = value - 1;
//문장3 : Price ROC가 0선보다 큼
if (C - C[ROCPeriod]) / C[ROCPeriod] * 100 >= 0 then
value = value + 1;
else
value = value - 1;
//문장4 : StochasticsK선이 50선 보다 큼
if ema((C-lowest(L, stoPeriod1)) / (highest(H, stoPeriod1) - lowest(L, stoPeriod1)) * 100, stoPeriod2)>=50 then
value = value + 1;
else
value = value - 1;
//CCI가 0선 보다 큼
if CCI(CCIPeriod) > 0 then
value = value + 1;
else
value = value - 1;
//CO가 0선 보다 큼
if ema(accum(((C -L)-(H- C))/ (H-L)*V), 3) - ema(accum(((C -L)-(H- C))/(H-L)*V), 10) >=0 then
value = value + 1;
else
value = value - 1;
//문장7 : 종가가 파라볼릭보다 큼
if SAR(0.02,0.2) < C then
value = value + 1;
else
value = value - 1;
BW_SEVEN = value;
var1 = ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2);
var2 = ema(var1,P3);
var3 = var1-var2;
Plot1(BW_SEVEN,"세븐 바이너리웨이브");
plot2(var1,"세븐 바이너리웨이브 MACD");
plot3(var2,"세븐 바이너리웨이브 MACD signal");
plot4(var3,"세븐 바이너리웨이브 MACD Osc");
PlotBaseLine1(0,"기준선0");
답변 1
예스스탁 예스스탁 답변
2011-06-08 11:09:31
안녕하세요
예스스탁입니다.
Input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(12), stoPeriod1(5),
stoPeriod2(3), CCIPeriod(9);
input: P1(12),P2(26),P3(9);
var: value(0),BW_SEVEN(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GO = O - sumGap; // 시가에서 갭누적값을 차감
GH = H - sumGap; // 고가에서 갭누적값을 차감
GL = L - sumGap; // 저가에서 갭누적값을 차감
GC = C - sumGap; // 종가에서 갭누적값을 차감
//문장1 : MACD가 MACD 시그널선 보다 큼
if ema(gC,shortPeriod)-ema(gC,longPeriod) >= ema(ema(gC,shortPeriod)-ema(gC,longPeriod),Period) then
value = 1;
else
value = -1;
//문장2 : 종가가 이동평균선보다 큼
if gC >= ma(gC, maPeriod) then
value = value + 1;
else
value = value - 1;
//문장3 : Price ROC가 0선보다 큼
if (gC - gC[ROCPeriod]) / gC[ROCPeriod] * 100 >= 0 then
value = value + 1;
else
value = value - 1;
//문장4 : StochasticsK선이 50선 보다 큼
if ema((gC-lowest(gL, stoPeriod1)) / (highest(gH, stoPeriod1) - lowest(gL, stoPeriod1)) * 100, stoPeriod2)>=50 then
value = value + 1;
else
value = value - 1;
Variables: Sum(0), CCIcount(0), MD(0), Avgvalue(0),CCIV(0);
If CCIPeriod > 0 Then Begin
Avgvalue = Ma(GH + gL + GC, CCIPeriod);
MD = 0;
For CCIcount = 0 To CCIPeriod - 1 Begin
MD = MD + Abs(GH[CCIcount] + gL[CCIcount] + GC[CCIcount] - Avgvalue);
End;
MD = MD / CCIPeriod;
If MD == 0 Then
CCIv = 0;
Else
CCIv = (GH + gL + GC - Avgvalue) / (0.015 * MD);
End
Else
CCIv = 0;
//CCI가 0선 보다 큼
if CCIv > 0 then
value = value + 1;
else
value = value - 1;
//CO가 0선 보다 큼
if ema(accum(((gC -gL)-(gH- gC))/ (gH-gL)*V), 3) - ema(accum(((gC -gL)-(gH- gC))/(gH-gL)*V), 10) >=0 then
value = value + 1;
else
value = value - 1;
input : AF(0.02),AFMAX(0.2);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(h), LowValue(l), EP(0),Sarv(0);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if gh > HighValue then
{
HighValue = gh;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if gl < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = gl;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if gl < LowValue then
{
LowValue = gl;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if gh > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = gh;
}
}
Sarv = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if gh > HighValue then
{
HighValue = gh;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if gl < LowValue then
{
LowValue = gl;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if gc > gc[1] then Direction = 1;
else
if gc < gc[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if gc < gc[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if gc > gc[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(gl, LowValue);
HighValue = max(gh, HighValue);
}
}
//문장7 : 종가가 파라볼릭보다 큼
if Sarv < gC then
value = value + 1;
else
value = value - 1;
BW_SEVEN = value;
var1 = ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2);
var2 = ema(var1,P3);
var3 = var1-var2;
Plot1(BW_SEVEN,"세븐 바이너리웨이브");
plot2(var1,"세븐 바이너리웨이브 MACD");
plot3(var2,"세븐 바이너리웨이브 MACD signal");
plot4(var3,"세븐 바이너리웨이브 MACD Osc");
PlotBaseLine1(0,"기준선0");
즐거운 하루되세요
> 부똘이 님이 쓴 글입니다.
> 제목 : 지표만 갭보정 처리된 세븐바이너리MACD와 OSC
>
안녕하세요.
지난번
세븐 바이너리 웨이브 오실레이터의 수식을 의뢰하였고
답변주신대로 잘 쓰고 있습니다.
여기서 하나더,
분봉은 갭보정을 하지 않고
지표만 갭보정한
-세븐바이너리웨이브
-세븐바이너리웨이브MACD
-세븐바이너리웨이브오실레이터의 수식을 얻고 싶습니다.
참고로 일전에 주신 세븐바이너리osc를 올려드립니다.
===============================================
안녕하세요
예스스탁입니다.
죄송합니다. 오실레이터를 추가했습니다.
Input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(12), stoPeriod1(5),
stoPeriod2(3), CCIPeriod(9);
input: P1(12),P2(26),P3(9);
var: value(0),BW_SEVEN(0);
//문장1 : MACD가 MACD 시그널선 보다 큼
if ema(C,shortPeriod)-ema(C,longPeriod) >= ema(ema(C,shortPeriod)-ema(C,longPeriod),Period) then
value = 1;
else
value = -1;
//문장2 : 종가가 이동평균선보다 큼
if C >= ma(C, maPeriod) then
value = value + 1;
else
value = value - 1;
//문장3 : Price ROC가 0선보다 큼
if (C - C[ROCPeriod]) / C[ROCPeriod] * 100 >= 0 then
value = value + 1;
else
value = value - 1;
//문장4 : StochasticsK선이 50선 보다 큼
if ema((C-lowest(L, stoPeriod1)) / (highest(H, stoPeriod1) - lowest(L, stoPeriod1)) * 100, stoPeriod2)>=50 then
value = value + 1;
else
value = value - 1;
//CCI가 0선 보다 큼
if CCI(CCIPeriod) > 0 then
value = value + 1;
else
value = value - 1;
//CO가 0선 보다 큼
if ema(accum(((C -L)-(H- C))/ (H-L)*V), 3) - ema(accum(((C -L)-(H- C))/(H-L)*V), 10) >=0 then
value = value + 1;
else
value = value - 1;
//문장7 : 종가가 파라볼릭보다 큼
if SAR(0.02,0.2) < C then
value = value + 1;
else
value = value - 1;
BW_SEVEN = value;
var1 = ema(BW_SEVEN,P1)- ema(BW_SEVEN,P2);
var2 = ema(var1,P3);
var3 = var1-var2;
Plot1(BW_SEVEN,"세븐 바이너리웨이브");
plot2(var1,"세븐 바이너리웨이브 MACD");
plot3(var2,"세븐 바이너리웨이브 MACD signal");
plot4(var3,"세븐 바이너리웨이브 MACD Osc");
PlotBaseLine1(0,"기준선0");