커뮤니티
수식 부탁드립니다.
2017-02-14 11:34:18
105
글번호 106813
아래식을 기준으로 다음 조건을 추가해주세요, 수정해보려 하는데 안되서요..
조건 추가) 51894 글 참조
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
input : P(3),P1(5),P2(10),P3(60),P4(120),short(12),long(26),sig(9),시작시간(90000),종료시간(60000),만족(3) ;
var : mav1(0),mav2(0),mav3(0),mav4(0),macdv(0),macds(0),T(0),Tcond(false),Xcond(false),ii(0);
var : N1(0),daypl(0),mav(0), Xcond1(false),Xcnt(0),T1(0);
mav = ma(c,P);
mav1 = ma(c,P1);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
mav4 = ma(c,P4);
MACDV = MACD(short,long);
MACDS = ema(MACDv,sig);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then
{
T = 0;
Tcond = true;
Xcond = false;
Xcond1 = false;
Xcnt = 0;
N1 = NetProfit;
}
//daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("S청산",1) or IsExitName("B청산",1)) Then
{
Xcnt = Xcnt+1;
if Xcnt == 만족 Then
Xcond1 = true;
}
if mav3 > mav3[1] and mav4 > mav4[1] and CrossUp(macdv,macds) Then{
T = 1;
ii = index;
}
if mav3 < mav3[1] and mav4 < mav4[1] and CrossDown(macdv,macds) Then{
T = -1;
ii = index;
}
if Tcond == true and Xcond1 == false then{
if MarketPosition == 0 and T == 1 and index <= ii+2 and c < mav Then
buy("S");
if MarketPosition == 0 and T == -1 and index <= ii+2 and c > mav Then
sell("B");
}
if CrossDown(mav1,mav2) Then
Exitlong("Sx");
if CrossUp(mav1,mav2) Then
ExitShort("Bx");
----------------------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식부탁드립니다.
>
안녕하세요
예스스탁입니다.
input : short(12),long(26),sig(9);
var : MACDV(0),MACDS(0),MACDO(0);
var : sum(0),ii(0),mav(0),mav1(0),mav2(0);
MACDv = MACD(Short,long);
MACDS = ema(MACDV,sig);
MACDO = MACDv-MACDs;
if crossup(MACDO,0) or CrossDown(MACDO,0) Then{
sum = 0;
ii = 0;
mav1 = mav[1];
mav2 = mav1[1];
if crossup(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
buy();
if CrossDown(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
sell();
}
sum = sum + abs(MACDO);
ii = ii + 1;
mav = sum/ii;
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다.
> 수식 부탁드립니다.
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
예)
매수 전 한 싸이클 오실레이터 막대 값들의 평균 값
(+구간) 평균값: +0.8, (-구간) 평균값: -0.4
매수 전 한 싸이클(+,-) 구간 오실레이터 각각의 절대값들의 평균: (|+0.8|+|-0.4|) / 2 = 0.6
매도 전 한 싸이클 오실레이터 막대 값들의 평균 값
(-구간) 평균값: -0.4, (+구간) 평균값: +1.0
매도 전 한 싸이클(-,+) 구간 오실레이터 각각의 절대값들의 평균: (|-0.4|+|+1.0|) / 2 = 0.7
답변 1
예스스탁 예스스탁 답변
2017-02-14 11:46:42
안녕하세요
예스스탁입니다.
input : P(3),P1(5),P2(10),P3(60),P4(120),short(12),long(26),sig(9),시작시간(90000),종료시간(60000),만족(3) ;
var : mav1(0),mav2(0),mav3(0),mav4(0),macdv(0),macds(0),MACDO(0),T(0),Tcond(false),Xcond(false),ii(0);
var : N1(0),daypl(0),mav(0), Xcond1(false),Xcnt(0),T1(0);
var : OscSum(0),Oscii(0),Oscmav(0),Oscmav1(0),Oscmav2(0);
mav = ma(c,P);
mav1 = ma(c,P1);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
mav4 = ma(c,P4);
MACDV = MACD(short,long);
MACDS = ema(MACDv,sig);
MACDO = MACDv-MACDs;
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then
{
T = 0;
Tcond = true;
Xcond = false;
Xcond1 = false;
Xcnt = 0;
N1 = NetProfit;
}
//daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("S청산",1) or IsExitName("B청산",1)) Then
{
Xcnt = Xcnt+1;
if Xcnt == 만족 Then
Xcond1 = true;
}
if mav3 > mav3[1] and mav4 > mav4[1] and CrossUp(macdv,macds) Then{
T = 1;
ii = index;
}
if mav3 < mav3[1] and mav4 < mav4[1] and CrossDown(macdv,macds) Then{
T = -1;
ii = index;
}
if Tcond == true and Xcond1 == false then{
if MarketPosition == 0 and T == 1 and index <= ii+2 and c < mav Then
buy("S");
if MarketPosition == 0 and T == -1 and index <= ii+2 and c > mav Then
sell("B");
}
if CrossDown(mav1,mav2) Then
Exitlong("Sx");
if CrossUp(mav1,mav2) Then
ExitShort("Bx");
if crossup(MACDO,0) or CrossDown(MACDO,0) Then{
Oscsum = 0;
Oscii = 0;
Oscmav1 = Oscmav[1];
Oscmav2 = Oscmav1[1];
if crossup(MACDO,0) and Oscmav1 >= 0.5 and Oscmav2 >= 0.5 Then
buy();
if CrossDown(MACDO,0) and Oscmav1 >= 0.5 and Oscmav2 >= 0.5 Then
sell();
}
Oscsum = Oscsum + abs(MACDO);
Oscii = Oscii + 1;
Oscmav = Oscsum/Oscii;
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
>
아래식을 기준으로 다음 조건을 추가해주세요, 수정해보려 하는데 안되서요..
조건 추가) 51894 글 참조
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
input : P(3),P1(5),P2(10),P3(60),P4(120),short(12),long(26),sig(9),시작시간(90000),종료시간(60000),만족(3) ;
var : mav1(0),mav2(0),mav3(0),mav4(0),macdv(0),macds(0),T(0),Tcond(false),Xcond(false),ii(0);
var : N1(0),daypl(0),mav(0), Xcond1(false),Xcnt(0),T1(0);
mav = ma(c,P);
mav1 = ma(c,P1);
mav2 = ma(c,P2);
mav3 = ma(c,P3);
mav4 = ma(c,P4);
MACDV = MACD(short,long);
MACDS = ema(MACDv,sig);
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("종료시간 매수청산");
if MarketPosition == -1 Then
ExitShort("종료시간 매도청산");
}
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then
{
T = 0;
Tcond = true;
Xcond = false;
Xcond1 = false;
Xcnt = 0;
N1 = NetProfit;
}
//daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and (IsExitName("S청산",1) or IsExitName("B청산",1)) Then
{
Xcnt = Xcnt+1;
if Xcnt == 만족 Then
Xcond1 = true;
}
if mav3 > mav3[1] and mav4 > mav4[1] and CrossUp(macdv,macds) Then{
T = 1;
ii = index;
}
if mav3 < mav3[1] and mav4 < mav4[1] and CrossDown(macdv,macds) Then{
T = -1;
ii = index;
}
if Tcond == true and Xcond1 == false then{
if MarketPosition == 0 and T == 1 and index <= ii+2 and c < mav Then
buy("S");
if MarketPosition == 0 and T == -1 and index <= ii+2 and c > mav Then
sell("B");
}
if CrossDown(mav1,mav2) Then
Exitlong("Sx");
if CrossUp(mav1,mav2) Then
ExitShort("Bx");
----------------------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식부탁드립니다.
>
안녕하세요
예스스탁입니다.
input : short(12),long(26),sig(9);
var : MACDV(0),MACDS(0),MACDO(0);
var : sum(0),ii(0),mav(0),mav1(0),mav2(0);
MACDv = MACD(Short,long);
MACDS = ema(MACDV,sig);
MACDO = MACDv-MACDs;
if crossup(MACDO,0) or CrossDown(MACDO,0) Then{
sum = 0;
ii = 0;
mav1 = mav[1];
mav2 = mav1[1];
if crossup(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
buy();
if CrossDown(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then
sell();
}
sum = sum + abs(MACDO);
ii = ii + 1;
mav = sum/ii;
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다.
> 수식 부탁드립니다.
이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross up 하면 매수
이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고
MACD Cross down 하면 매도
예)
매수 전 한 싸이클 오실레이터 막대 값들의 평균 값
(+구간) 평균값: +0.8, (-구간) 평균값: -0.4
매수 전 한 싸이클(+,-) 구간 오실레이터 각각의 절대값들의 평균: (|+0.8|+|-0.4|) / 2 = 0.6
매도 전 한 싸이클 오실레이터 막대 값들의 평균 값
(-구간) 평균값: -0.4, (+구간) 평균값: +1.0
매도 전 한 싸이클(-,+) 구간 오실레이터 각각의 절대값들의 평균: (|-0.4|+|+1.0|) / 2 = 0.7