커뮤니티
수식부탁요
2014-10-01 17:31:50
142
글번호 79020
1.
macd가 일주월기준으로 0선위에 있으며,
binary wave seven(120분,일선택할수 있게 하고요) 이 -7에서 올라올때 매수
macd가 월봉기준으로 0선위에서 데드나올때 청산
2.
-제가 만든 다른 시스템에 macd가 일주월 기준으로 0선위에 있을때만 long
-제가 만든 다른 시스템에 macd가 일주월 기준으로 -0선아래에 있을때만 short
답변 1
예스스탁 예스스탁 답변
2014-10-02 09:31:48
안녕하세요
예스스탁입니다.
1.
binary wave seven는 기본차트 주기로 계산을 하므로
차트주기를 120분이나 일봉으로 변경하시면 됩니다.
Input : Period1(12),Period2(26),Period3(9);
Var : dEp1(0), dJISU1(0), DINDEX1(0), dPreJISU1(0);
Var : dEp2(0), dJISU2(0), dPreJISU2(0);
Var : dEp3(0), dJISU3(0), dPreMACDSIG(0);
var : dMACDVal(0),dMACDSig(0);
Var : wEp1(0), wJISU1(0), wINDEX1(0), wPreJISU1(0);
Var : wEp2(0), wJISU2(0), wPreJISU2(0);
Var : wEp3(0), wJISU3(0), wPreMACDSIG(0);
var : wMACDVal(0),wMACDSig(0);
Var : mEp1(0), mJISU1(0), mINDEX1(0), mPreJISU1(0);
Var : mEp2(0), mJISU2(0), mPreJISU2(0);
Var : mEp3(0), mJISU3(0), mPreMACDSIG(0);
var : mMACDVal(0),mMACDSig(0);
Input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(12), stoPeriod1(5),
stoPeriod2(3), CCIPeriod(9);
var: value(0),BW_SEVEN(0);
#일봉 MACD
dEp1 = 2/(Period1+1);
dEp2 = 2/(Period2+1);
dEp3 = 2/(Period3+1);
if date != date[1] Then{
DINDEX1 = DINDEX1 + 1;
dPreJISU1 = dJISU1[1];
dPreJISU2 = dJISU2[1];
dPreMACDSIG = dMACDSIG[1];
}
if DINDEX1 <= 1 then {
dJISU1 = C;
dJISU2 = C;
dMACDVal = dJiSu1-dJisu2;
dMACDSIG = dMACDVal;
}
else{
dJISU1 = C * dEP1 + dPreJISU1 * (1-dEP1);
dJISU2 = C * dEP2 + dPreJISU2 * (1-dEP2);
dMACDVal = dJiSu1-dJisu2;
dMACDSIG = dMACDVal * dEP3 + dPreMACDSIG * (1-dEP3);
}
#주봉 MACD
wEp1 = 2/(Period1+1);
wEp2 = 2/(Period2+1);
wEp3 = 2/(Period3+1);
if dayofweek(date) < DayOfWeek(date[1]) Then{
wINDEX1 = wINDEX1 + 1;
wPreJISU1 = wJISU1[1];
wPreJISU2 = wJISU2[1];
wPreMACDSIG = wMACDSIG[1];
}
if wINDEX1 <= 1 then {
wJISU1 = C;
wJISU2 = C;
wMACDVal = wJiSu1-wJisu2;
wMACDSIG = wMACDVal;
}
else{
wJISU1 = C * wEP1 + wPreJISU1 * (1-wEP1);
wJISU2 = C * wEP2 + wPreJISU2 * (1-wEP2);
wMACDVal = wJiSu1-wJisu2;
wMACDSIG = wMACDVal * wEP3 + wPreMACDSIG * (1-wEP3);
}
#월봉 MACD
mEp1 = 2/(Period1+1);
mEp2 = 2/(Period2+1);
mEp3 = 2/(Period3+1);
if date > date[1]+30 Then{
mINDEX1 = mINDEX1 + 1;
mPreJISU1 = mJISU1[1];
mPreJISU2 = mJISU2[1];
mPreMACDSIG = mMACDSIG[1];
}
if mINDEX1 <= 1 then {
mJISU1 = C;
mJISU2 = C;
mMACDVal = mJiSu1-mJisu2;
mMACDSIG = mMACDVal;
}
else{
mJISU1 = C * mEP1 + mPreJISU1 * (1-mEP1);
mJISU2 = C * mEP2 + mPreJISU2 * (1-mEP2);
mMACDVal = mJiSu1-mJisu2;
mMACDSIG = mMACDVal * mEP3 + mPreMACDSIG * (1-mEP3);
}
#바이너리웨이브 세븐
if ema(C,shortPeriod)-ema(C,longPeriod) >= ema(ema(C,shortPeriod)-ema(C,longPeriod),Period) then
value = 1;
else
value = -1;
if C >= ma(C, maPeriod) then
value = value + 1;
else
value = value - 1;
if (C - C[ROCPeriod]) / C[ROCPeriod] * 100 >= 0 then
value = value + 1;
else
value = value - 1;
if ema((C-lowest(L, stoPeriod1)) / (highest(H, stoPeriod1) - lowest(L, stoPeriod1)) * 100, stoPeriod2)>=50 then
value = value + 1;
else
value = value - 1;
if CCI(CCIPeriod) > 0 then
value = value + 1;
else
value = value - 1;
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;
if SAR(0.02,0.2) < C then
value = value + 1;
else
value = value - 1;
BW_SEVEN = value;
if DMACDval > 0 and Wmacdval > 0 and mMACDVal > 0 And
BW_SEVEN > -7 and BW_SEVEN[1] == -7 Then
buy();
if CrossDown(Mmadcdval,0) Then
ExitLong();
2
Input : Period1(12),Period2(26),Period3(9);
Var : dEp1(0), dJISU1(0), DINDEX1(0), dPreJISU1(0);
Var : dEp2(0), dJISU2(0), dPreJISU2(0);
Var : dEp3(0), dJISU3(0), dPreMACDSIG(0);
var : dMACDVal(0),dMACDSig(0);
Var : wEp1(0), wJISU1(0), wINDEX1(0), wPreJISU1(0);
Var : wEp2(0), wJISU2(0), wPreJISU2(0);
Var : wEp3(0), wJISU3(0), wPreMACDSIG(0);
var : wMACDVal(0),wMACDSig(0);
Var : mEp1(0), mJISU1(0), mINDEX1(0), mPreJISU1(0);
Var : mEp2(0), mJISU2(0), mPreJISU2(0);
Var : mEp3(0), mJISU3(0), mPreMACDSIG(0);
var : mMACDVal(0),mMACDSig(0);
#일봉 MACD
dEp1 = 2/(Period1+1);
dEp2 = 2/(Period2+1);
dEp3 = 2/(Period3+1);
if date != date[1] Then{
DINDEX1 = DINDEX1 + 1;
dPreJISU1 = dJISU1[1];
dPreJISU2 = dJISU2[1];
dPreMACDSIG = dMACDSIG[1];
}
if DINDEX1 <= 1 then {
dJISU1 = C;
dJISU2 = C;
dMACDVal = dJiSu1-dJisu2;
dMACDSIG = dMACDVal;
}
else{
dJISU1 = C * dEP1 + dPreJISU1 * (1-dEP1);
dJISU2 = C * dEP2 + dPreJISU2 * (1-dEP2);
dMACDVal = dJiSu1-dJisu2;
dMACDSIG = dMACDVal * dEP3 + dPreMACDSIG * (1-dEP3);
}
#주봉 MACD
wEp1 = 2/(Period1+1);
wEp2 = 2/(Period2+1);
wEp3 = 2/(Period3+1);
if dayofweek(date) < DayOfWeek(date[1]) Then{
wINDEX1 = wINDEX1 + 1;
wPreJISU1 = wJISU1[1];
wPreJISU2 = wJISU2[1];
wPreMACDSIG = wMACDSIG[1];
}
if wINDEX1 <= 1 then {
wJISU1 = C;
wJISU2 = C;
wMACDVal = wJiSu1-wJisu2;
wMACDSIG = wMACDVal;
}
else{
wJISU1 = C * wEP1 + wPreJISU1 * (1-wEP1);
wJISU2 = C * wEP2 + wPreJISU2 * (1-wEP2);
wMACDVal = wJiSu1-wJisu2;
wMACDSIG = wMACDVal * wEP3 + wPreMACDSIG * (1-wEP3);
}
#월봉 MACD
mEp1 = 2/(Period1+1);
mEp2 = 2/(Period2+1);
mEp3 = 2/(Period3+1);
if date > date[1]+30 Then{
mINDEX1 = mINDEX1 + 1;
mPreJISU1 = mJISU1[1];
mPreJISU2 = mJISU2[1];
mPreMACDSIG = mMACDSIG[1];
}
if mINDEX1 <= 1 then {
mJISU1 = C;
mJISU2 = C;
mMACDVal = mJiSu1-mJisu2;
mMACDSIG = mMACDVal;
}
else{
mJISU1 = C * mEP1 + mPreJISU1 * (1-mEP1);
mJISU2 = C * mEP2 + mPreJISU2 * (1-mEP2);
mMACDVal = mJiSu1-mJisu2;
mMACDSIG = mMACDVal * mEP3 + mPreMACDSIG * (1-mEP3);
}
if DMACDval > 0 and Wmacdval > 0 and mMACDVal > 0 And
매수조건 Then
buy();
if DMACDval < 0 and Wmacdval < 0 and mMACDVal < 0 And
매도조건 Then
sell();
즐거운 하루되세요
> HI_7c****** 님이 쓴 글입니다.
> 제목 : 수식부탁요
> 1.
macd가 일주월기준으로 0선위에 있으며,
binary wave seven(120분,일선택할수 있게 하고요) 이 -7에서 올라올때 매수
macd가 월봉기준으로 0선위에서 데드나올때 청산
2.
-제가 만든 다른 시스템에 macd가 일주월 기준으로 0선위에 있을때만 long
-제가 만든 다른 시스템에 macd가 일주월 기준으로 -0선아래에 있을때만 short