커뮤니티

질문입니다.

프로필 이미지
yanartas
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값의 위치에따라 바뀌는 시스템을 만들고 싶습니다. 부탁은 저 지표를 사용해서 시스템을 만들고 싶습니다. (지표를 바로이용하여도 좋고, 위 지표를 함수화하여 사용하여도 좋습니다.) 예시로 부탁드리겠습니다. 감사합니다.