커뮤니티
질문입니다.
2016-11-13 16:50:41
95
글번호 103936
선물분봉에서 거래를 하고자합니다.
먼저 다음과 같은 지표를 작성하였습니다.
Input : P1(10), P2(20);
Var1 = Ma(C, P1);
Var2 = Ma(C, P2);
Variable : maTestc1(0);
If C == Var1 Then
maTestc1 = 0;
If C > Var1 Then
maTestc1 = 1;
If C < Var1 Then
maTestc1 = -1;
Variable : maTestc2(0);
If C == Var2 Then
maTestc2 = 0;
If C > Var2 Then
maTestc2 = 1;
If C < Var2 Then
maTestc2 = -1;
Variable : maTest12(0);
If Var1 == Var2 Then
maTest12 = 0;
If Var1 > Var2 Then
maTest12 = 1;
If Var1 < Var2 Then
maTest12 = -1;
Variable : maTestTotal(0);
maTestTotal = maTestc1 + maTestc2 + maTest12;
Plot1(maTestTotal, "y3maTest", BLACK);
Plot2(0, "0", BLACK);
Plot3(1.5, "1.5", RED);
Plot4(3, "3", RED);
Plot5(-1.5, "-1.5", BLUE);
Plot6(-3, "-3", BLUE);
위 지표를 토대로 시스템을 작성하고자 합니다.
maTestTotal값은 -3부터 +3까지 움직입니다.
전략은 maTestTotal값이 -3, -1.5, 0, +1.5, +3값을 통과할때 발생하게 하고 싶습니다.
예를들어
현재 포지션이 매도포지션이고,
maTestTotal값이 현재 -3 이상이고 -1.5 미만에 존재할때,
-1.5를 상향돌파하면 매수입니다.
(전봉에서 maTestTotal값이 -1.5미만이거나 -1.5이고, 현재봉에서 -1.5 초과이면)
-1.5를 상향돌파한 후 다시 maTestTotal값이 -3에 도달한다면 매도로 진입합니다.
(maTestTotal값의 최소값은 -3입니다. 그러므로 -3에도달하면 매도진입)
maTestTotal값이 계속상승하여 0선 넘어간다면,
이때 매도진입은 -1.5선을 하향돌파할때로 바뀌게 됩니다.
maTestTotal값이 계속상승하여 +1.5를 넘어간다면,
매도진입은 0을 하향돌파할 때로 바뀌게 됩니다.
마찬가지로 maTestTotal값이 계속상승하여 최대값인 +3에 도달한다면,
(maTestTotal값이 한번이라도 +3을 터치한 이후)
매도진입은 +1.5를 하향돌파할 때로 바뀌게 됩니다.
매도진입도 마찬가지입니다.
현재 포지션이 매수이고,
maTestTotal값이 +3이하 +1.5초과상태에서 +1.5를 하향돌파하면
(전봉에서 maTestTotal값이 +1.5 초과이가나 +1.5이고, 현재봉에서 +1.5 미만이라면)
매도로 진입합니다.
이때 재매수는 maTestTotal값이 +3이 될때 발생합니다.
(maTestTotal값의 최대값은 +3이기 때문)
maTestTotal값이 하락하여 0 미만이된다면
재매수 진입은 maTestTotal값이 +1.5를 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 +1.5 미만이거나 +1.5이고, 현재봉에서 +1.5 초과라면)
maTestTotal값이 계속 하락하여 -1.5미만이된다면
재매수 진입은 maTestTotal값이 0을 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 0 미만이거나 0이고, 현재봉에서 0 초과라면)
maTestTotal값이 더 하락하여 -3 즉, 최소값에 도달을 하게 된다면,
(maTestTotal값이 한번이라도 -3을 터치한 이후)
이때 재매수 진입은 maTestTotal값이 -1.5를 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 -1.5 미만이거나 -1.5이고, 현재봉에서 -1.5 초과라면)
이와같은 매수와 매도조건이 maTestTotal값의 위치에따라 바뀌는 시스템을 만들고 싶습니다.
부탁은 저 지표를 사용해서 시스템을 만들고 싶습니다.
(지표를 바로이용하여도 좋고, 위 지표를 함수화하여 사용하여도 좋습니다.)
예시로 부탁드리겠습니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2016-11-14 13:59:52
안녕하세요
예스스탁입니다.
Input : P1(10), P2(20);
Var1 = Ma(C, P1);
Var2 = Ma(C, P2);
Variable : maTestc1(0);
If C == Var1 Then
maTestc1 = 0;
If C > Var1 Then
maTestc1 = 1;
If C < Var1 Then
maTestc1 = -1;
Variable : maTestc2(0);
If C == Var2 Then
maTestc2 = 0;
If C > Var2 Then
maTestc2 = 1;
If C < Var2 Then
maTestc2 = -1;
Variable : maTest12(0);
If Var1 == Var2 Then
maTest12 = 0;
If Var1 > Var2 Then
maTest12 = 1;
If Var1 < Var2 Then
maTest12 = -1;
Variable : maTestTotal(0);
maTestTotal = maTestc1 + maTestc2 + maTest12;
#3이면 매수
if maTestTotal == 3 Then
buy("+3B");
#-3이면 매도
if maTestTotal == -3 Then
sell("-3S");
#매수진입후
if MarketPosition == 1 Then{
#maTestTotal최고가가 0보다 크거나 같고 1.5 아래이면 -1.5 하향시 매도로 스위칭
if highest(maTestTotal,BarsSinceEntry) >= 0 and highest(maTestTotal,BarsSinceEntry+1) < 1.5 and
CrossDown(maTestTotal,-1.5) Then
sell("-1.5S");
#maTestTotal최고가가 1.5보다 크거나 같고 3.0 아래이면 0 하향시 매도로 스위칭
if highest(maTestTotal,BarsSinceEntry) >= 1.5 and highest(maTestTotal,BarsSinceEntry+1) < 3.0 and
CrossDown(maTestTotal,0) Then
sell("0S");
#maTestTotal최고가가 3.0보다 크거나 같으면 1.5 하향시 매도로 스위칭
if highest(maTestTotal,BarsSinceEntry+1) >= 3.0 and
CrossDown(maTestTotal,1.5) Then
sell("+1.5S");
}
if MarketPosition == -1 Then{
#maTestTotal최저가가 0보다 작거나 같고 -1.5 보다 크면 1.5 상향시 매수로 스위칭
if Lowest(maTestTotal,BarsSinceEntry) <= 0 and Lowest(maTestTotal,BarsSinceEntry+1) > -1.5 and
CrossUp(maTestTotal,1.5) Then
Buy("+1.5B");
#maTestTotal최저가가 -1.5보다 작거나 같고 -3.0 보다 크면 0 상향시 매수로 스위칭
if Lowest(maTestTotal,BarsSinceEntry) <= -1.5 and Lowest(maTestTotal,BarsSinceEntry+1) > -3.0 and
CrossUp(maTestTotal,0) Then
buy("0B");
#maTestTotal최저가가 -3.0보다 작거나 같면 -1.5 상향시 매수로 스위칭
if Lowest(maTestTotal,BarsSinceEntry+1) <= -3.0 and CrossUp(maTestTotal,-1.5) Then
buy("-1.5B");
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 선물분봉에서 거래를 하고자합니다.
먼저 다음과 같은 지표를 작성하였습니다.
Input : P1(10), P2(20);
Var1 = Ma(C, P1);
Var2 = Ma(C, P2);
Variable : maTestc1(0);
If C == Var1 Then
maTestc1 = 0;
If C > Var1 Then
maTestc1 = 1;
If C < Var1 Then
maTestc1 = -1;
Variable : maTestc2(0);
If C == Var2 Then
maTestc2 = 0;
If C > Var2 Then
maTestc2 = 1;
If C < Var2 Then
maTestc2 = -1;
Variable : maTest12(0);
If Var1 == Var2 Then
maTest12 = 0;
If Var1 > Var2 Then
maTest12 = 1;
If Var1 < Var2 Then
maTest12 = -1;
Variable : maTestTotal(0);
maTestTotal = maTestc1 + maTestc2 + maTest12;
Plot1(maTestTotal, "y3maTest", BLACK);
Plot2(0, "0", BLACK);
Plot3(1.5, "1.5", RED);
Plot4(3, "3", RED);
Plot5(-1.5, "-1.5", BLUE);
Plot6(-3, "-3", BLUE);
위 지표를 토대로 시스템을 작성하고자 합니다.
maTestTotal값은 -3부터 +3까지 움직입니다.
전략은 maTestTotal값이 -3, -1.5, 0, +1.5, +3값을 통과할때 발생하게 하고 싶습니다.
예를들어
현재 포지션이 매도포지션이고,
maTestTotal값이 현재 -3 이상이고 -1.5 미만에 존재할때,
-1.5를 상향돌파하면 매수입니다.
(전봉에서 maTestTotal값이 -1.5미만이거나 -1.5이고, 현재봉에서 -1.5 초과이면)
-1.5를 상향돌파한 후 다시 maTestTotal값이 -3에 도달한다면 매도로 진입합니다.
(maTestTotal값의 최소값은 -3입니다. 그러므로 -3에도달하면 매도진입)
maTestTotal값이 계속상승하여 0선 넘어간다면,
이때 매도진입은 -1.5선을 하향돌파할때로 바뀌게 됩니다.
maTestTotal값이 계속상승하여 +1.5를 넘어간다면,
매도진입은 0을 하향돌파할 때로 바뀌게 됩니다.
마찬가지로 maTestTotal값이 계속상승하여 최대값인 +3에 도달한다면,
(maTestTotal값이 한번이라도 +3을 터치한 이후)
매도진입은 +1.5를 하향돌파할 때로 바뀌게 됩니다.
매도진입도 마찬가지입니다.
현재 포지션이 매수이고,
maTestTotal값이 +3이하 +1.5초과상태에서 +1.5를 하향돌파하면
(전봉에서 maTestTotal값이 +1.5 초과이가나 +1.5이고, 현재봉에서 +1.5 미만이라면)
매도로 진입합니다.
이때 재매수는 maTestTotal값이 +3이 될때 발생합니다.
(maTestTotal값의 최대값은 +3이기 때문)
maTestTotal값이 하락하여 0 미만이된다면
재매수 진입은 maTestTotal값이 +1.5를 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 +1.5 미만이거나 +1.5이고, 현재봉에서 +1.5 초과라면)
maTestTotal값이 계속 하락하여 -1.5미만이된다면
재매수 진입은 maTestTotal값이 0을 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 0 미만이거나 0이고, 현재봉에서 0 초과라면)
maTestTotal값이 더 하락하여 -3 즉, 최소값에 도달을 하게 된다면,
(maTestTotal값이 한번이라도 -3을 터치한 이후)
이때 재매수 진입은 maTestTotal값이 -1.5를 상향돌파할 때 일어납니다.
(전봉에서 maTestTotal값이 -1.5 미만이거나 -1.5이고, 현재봉에서 -1.5 초과라면)
이와같은 매수와 매도조건이 maTestTotal값의 위치에따라 바뀌는 시스템을 만들고 싶습니다.
부탁은 저 지표를 사용해서 시스템을 만들고 싶습니다.
(지표를 바로이용하여도 좋고, 위 지표를 함수화하여 사용하여도 좋습니다.)
예시로 부탁드리겠습니다.
감사합니다.