커뮤니티
원래수식에 추가로 정배열/역배열 조건 추가 식 부탁해요~
2018-08-31 08:40:39
172
글번호 121769
RSI를 기본으로 하는 수식입니다.(매수-청산,매도-청산)
기본봉은 30분봉으로 운영하고 성능보고서로 확인하면 상당히 결과가 않좋더군요..
그래서 한가지 더 조건을 추가하고 싶어요... 도와주시면 감사
아래식은 30분봉으로 운영하나 추가조건은 일봉상 정배열/역배열을 넣고 싶어요..
(1) 정배열 (5일봉>20일봉>60일봉) (2) 역배열( 5일봉<20일봉<60일봉) (3) 혼재 상황
a. 매수-매수청산식에서 + 역배열시 신규 매수 금지 ( 정배열,혼재상황에서 매수)
b. 매도-매도청산식에서 + 정배열 신규 매수 금지 ( 역배열 혼재상황 매도)
기존 수식
var1 = RSI(14);
if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b1",OnClose,def,1);
if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b2",OnClose,def,2);
if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b3",OnClose,def,3);
if MarketPosition == 1 and var1 >= 70 Then
exitlong("bx");
if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s1",OnClose,def,1);
if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s2",OnClose,def,2);
if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s3",OnClose,def,3);
if MarketPosition == -1 and var1 < 50 Then
ExitShort("sx");
답변 1
예스스탁 예스스탁 답변
2018-08-31 13:15:08
안녕하세요
예스스탁입니다.
input : P1(5),P2(20),P3(60);
var : count(0);
var : sumV1(0),sumV2(0),sumV3(0);
var : mav1(0),mav2(0),mav3(0),T(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to P3{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
if count < P3 Then
sumV3 = sumV3+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
if mav1 > mav2 and mav2 > mav3 Then
T = 1;
Else if mav1 < mav2 and mav2 < mav3 Then
T = -1;
Else
T = 0;
var1 = RSI(14);
if T >= 0 then
{
if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b1",OnClose,def,1);
if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b2",OnClose,def,2);
if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b3",OnClose,def,3);
}
if MarketPosition == 1 and var1 >= 70 Then
exitlong("bx");
if T <= 0 then
{
if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s1",OnClose,def,1);
if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s2",OnClose,def,2);
if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s3",OnClose,def,3);
}
if MarketPosition == -1 and var1 < 50 Then
ExitShort("sx");
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 원래수식에 추가로 정배열/역배열 조건 추가 식 부탁해요~
>
RSI를 기본으로 하는 수식입니다.(매수-청산,매도-청산)
기본봉은 30분봉으로 운영하고 성능보고서로 확인하면 상당히 결과가 않좋더군요..
그래서 한가지 더 조건을 추가하고 싶어요... 도와주시면 감사
아래식은 30분봉으로 운영하나 추가조건은 일봉상 정배열/역배열을 넣고 싶어요..
(1) 정배열 (5일봉>20일봉>60일봉) (2) 역배열( 5일봉<20일봉<60일봉) (3) 혼재 상황
a. 매수-매수청산식에서 + 역배열시 신규 매수 금지 ( 정배열,혼재상황에서 매수)
b. 매도-매도청산식에서 + 정배열 신규 매수 금지 ( 역배열 혼재상황 매도)
기존 수식
var1 = RSI(14);
if var1 <= 20 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b1",OnClose,def,1);
if var1 <= 15 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b2",OnClose,def,2);
if var1 <= 10 and C < C[1] and C < C[2] and C < C[3] and
(MarketPosition <= 0 or (MarketPosition == 1 and MaxContracts < 20)) Then
buy("b3",OnClose,def,3);
if MarketPosition == 1 and var1 >= 70 Then
exitlong("bx");
if var1 >= 85 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s1",OnClose,def,1);
if var1 >= 90 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s2",OnClose,def,2);
if var1 >= 95 and C > C[1] and C > C[2] and C > C[3] and
(MarketPosition <= 0 or (MarketPosition == -1 and MaxContracts < 20)) Then
Sell("s3",OnClose,def,3);
if MarketPosition == -1 and var1 < 50 Then
ExitShort("sx");
다음글
이전글