커뮤니티
수식문의
2011-10-31 01:32:42
533
글번호 44259
1. macd오실레이터 매수매도 시스템
ㄱ.macd오실레이터에 대한 이동평균 n선을 구하여
ㄴ.macd오실레이터가 macd오실레이터 n이동평균선을 돌파하면 매수,
ㄷ. 이탈하면 매도하는
수식을 얻고 싶습니다.
macd오실레이터를 기준으로 하는 파라볼릭식을 아래와 같이 구하였습니다.
(아래 참조)
2.아래 파라볼릭점이 상승하면 **색점, 하락하면 @@색점을 찍는 수식을 얻고 싶습니다.
3. 2번지표에서 구한 색변환 파라볼릭을 가격파라볼릭처럼 캔들차트 위 아래에 찍어줄수 있을까요.
4. 2번, 색변화된 파라볼릭식에 대한 갭보정지표 수식을 얻고 싶습니다.
5. 4번에서 구한 갭보정파라볼릭을 가격파라볼릭처럼 캔들차트 위 아래에 찍어줄수 있을까요.
6. MACD오실레이터를 기준으로 하는 파라볼릭이(아래참조)
ㄱ. 상승하면 매수,
ㄴ. 하락하면 매도하는
시스템 수식을 얻고 싶습니다.
7. 6번 시스템식에 대한 갭보정 수식을 얻고 싶습니다.
부탁드릴게 좀 많아 졌네요. 항상 수고해주셔서 감사합니다.
가능하시면 메일로 부탁드립니다.
punkshow@korea.com
-------- 아 래 ----------
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue
(var1), EP(0),Sarv(0);
var1 = MACD_OSC(P1,P2,P3);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
plot1(var1,"MACD오실레이터");
plot2(Sarv,"파라볼릭");
PlotBaseLine1(0);
@@@@ 갭보정된 스토케스틱 오실레이터
아래와 같이 스토케스틱 오실레이터 수식을 얻었습니다.
아래 스토케스틱 오실레이터에 대한 갭보정 지표를 얻고 싶습니다.
Input : P1(12),P2(26),P3(9);
Var : StoOsc(0);
var1 = StochasticsK(P1,P2);
var2 = StochasticsD(P1,P2,P3);
StoOsc = var1-var2;
Plot1(StoOsc, "Stochastics Oscillator");
PlotBaseLine1(0);
답변 1
예스스탁 예스스탁 답변
2011-10-31 16:21:59
안녕하세요
예스스탁입니다.
1.
input : P1(12),P2(26),P3(9),n(10);
var1 = MACD(P1,P2);
var2 = ema(var1,P3);
var3 = MACD_OSC(P1,P2,P3);
var4 = ma(var3,n);
if crossup(var3,var4) Then
buy();
if CrossDown(var3,var4) Then
Sell();
2.
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue(var1), EP(0),Sarv(0);
var1 = MACD_OSC(P1,P2,P3);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
if Sarv > Sarv[1] Then
plot1(Sarv,"파라볼릭",RED);
Else
plot1(Sarv,"파라볼릭",blue);
3.
지표식의 축이 봉차트의 축과 차이가 커 가능하지 않습니다.
4.
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue(var1), EP(0),Sarv(0);
var : sumGap(0), gap(0), GC(0);
var : MacdVal(0), MacdSig(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GC = C - sumGap; // 갭보정 종가
MacdVal = ema(GC,P1)-ema(GC,P2); //macd 지표
MacdSig = ema(MacdVal, P3); //macd signal 지표
var1 = MacdVal-MacdSig;
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
if Sarv > Sarv[1] Then
plot1(Sarv,"파라볼릭",RED);
Else
plot1(Sarv,"파라볼릭",blue);
5.
지표식의 축이 봉차트의 축과 차이가 커 가능하지 않습니다.
6.
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue(var1), EP(0),Sarv(0);
var1 = MACD_OSC(P1,P2,P3);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
if Sarv > Sarv[1] Then
buy();
if Sarv < Sarv[1] Then
sell();
7.
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue(var1), EP(0),Sarv(0);
var : sumGap(0), gap(0), GC(0);
var : MacdVal(0), MacdSig(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GC = C - sumGap; // 갭보정 종가
MacdVal = ema(GC,P1)-ema(GC,P2); //macd 지표
MacdSig = ema(MacdVal, P3); //macd signal 지표
var1 = MacdVal-MacdSig;
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
if Sarv > Sarv[1] Then
buy();
if Sarv < Sarv[1] Then
sell();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식문의
>
1. macd오실레이터 매수매도 시스템
ㄱ.macd오실레이터에 대한 이동평균 n선을 구하여
ㄴ.macd오실레이터가 macd오실레이터 n이동평균선을 돌파하면 매수,
ㄷ. 이탈하면 매도하는
수식을 얻고 싶습니다.
macd오실레이터를 기준으로 하는 파라볼릭식을 아래와 같이 구하였습니다.
(아래 참조)
2.아래 파라볼릭점이 상승하면 **색점, 하락하면 @@색점을 찍는 수식을 얻고 싶습니다.
3. 2번지표에서 구한 색변환 파라볼릭을 가격파라볼릭처럼 캔들차트 위 아래에 찍어줄수 있을까요.
4. 2번, 색변화된 파라볼릭식에 대한 갭보정지표 수식을 얻고 싶습니다.
5. 4번에서 구한 갭보정파라볼릭을 가격파라볼릭처럼 캔들차트 위 아래에 찍어줄수 있을까요.
6. MACD오실레이터를 기준으로 하는 파라볼릭이(아래참조)
ㄱ. 상승하면 매수,
ㄴ. 하락하면 매도하는
시스템 수식을 얻고 싶습니다.
7. 6번 시스템식에 대한 갭보정 수식을 얻고 싶습니다.
부탁드릴게 좀 많아 졌네요. 항상 수고해주셔서 감사합니다.
가능하시면 메일로 부탁드립니다.
punkshow@korea.com
-------- 아 래 ----------
Input : P1(12),P2(26),P3(9),AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(var1), AF_Value(.02), HighValue(var1), LowValue
(var1), EP(0),Sarv(0);
var1 = MACD_OSC(P1,P2,P3);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 > HighValue then
{
HighValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = var1;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if var1 > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = var1;
}
}
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 var1 > HighValue then
{
HighValue = var1;
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 var1 < LowValue then
{
LowValue = var1;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
Sarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if var1 > var1[1] then Direction = 1;
else
if var1 < var1[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if var1 < var1[1] then
{
Direction = -1;
SAR_Value = HighValue;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if var1 > var1[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(var1, LowValue);
HighValue = max(var1, HighValue);
}
}
plot1(var1,"MACD오실레이터");
plot2(Sarv,"파라볼릭");
PlotBaseLine1(0);
@@@@ 갭보정된 스토케스틱 오실레이터
아래와 같이 스토케스틱 오실레이터 수식을 얻었습니다.
아래 스토케스틱 오실레이터에 대한 갭보정 지표를 얻고 싶습니다.
Input : P1(12),P2(26),P3(9);
Var : StoOsc(0);
var1 = StochasticsK(P1,P2);
var2 = StochasticsD(P1,P2,P3);
StoOsc = var1-var2;
Plot1(StoOsc, "Stochastics Oscillator");
PlotBaseLine1(0);