커뮤니티
LRS전략에서 RSquare함수
2008-11-17 14:07:43
793
글번호 18195
아래는 시스메틱 트레이더(네이버카페)에서 퍼온 소스인데
편집기에 넣으면 "선언되지 않은 이름 'RSquare'가 사용되었습니다."라고 오류납니다.
여기 검색해보니 유사한 함수가 있긴 한데, 입력받는 외부변수 개수가 다릅니다.
초보라서 봐도 잘 모르겠는데 보고 답변 좀 해주세요.
/*<지표들의 기간>
LRS 기간 : 30
LRS 신호선 : 7
결정계수(r-Squared) 기간 : 15
1.Set-Up
LRS가 신호선 상향돌파
LRS가 신호선 하향돌파
2.매수
LRS > 신호선
LRS > 전일 LRS
Rsqr > 0.3
Rsqr > 전일 Rsqr
최근 Set-UP①이 만족할 시점의 고가 이상일 때 진입
3.매수청산
LRS < 신호선
최근 Set-UP②가 만족할 시점의 저가 이하일 때 청산
4.매도
LRS < 신호선
LRS < 전일 LRS
Rsqr > 0.3
Rsqr > 전일 Rsqr
최근 Set-UP②가 만족할 시점의 저가 이하일 때 진입
5.매도청산
LRS > 신호선
최근 Set-UP①이 만족할 시점의 고가 이상일 때 청산
6.손절매
진입가에서 5% 이상 손실(마진콜 감안)
7.재진입 제한
손절매 청산 이후에는 3개 봉 경과 후 진입
*/
input : Period1(30),Period2(7),RSQR(15);
var : cnt(0);
var1 = LRS(c,Period1);
var2 = ema(var1,Period2);
var3 = RSquare(var1,var2,RSQR);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if crossup(var1,var2) Then
value1 = H;
if CrossDown(var1,var2) Then
value2 = L;
condition1 = var1 > var2 and var1 > var1[1] and var3 > 0.3 and var3 > var3[1] and C > value1;
condition2 = var1 < var2 and var1 < var1[1] and var3 > 0.3 and var3 > var3[1] and C < value2;
if condition1 == true Then
buy();
if var1 < var2 and C < value2 Then
exitlong();
if condition2 == True Then
sell();
if var1 < var2 and c > value1 Then
ExitShort();
SetStopLoss(5);
##차트상 첫진입(앞에 청산이 없는경우)
if MarketPosition() == 0 and cnt < 1 Then{
if condition1 Then{
buy("매수");
cnt = 1;
}
if condition2 Then{
sell("매도");
cnt = 1;
}
}
##첫진입 이후(앞에 청산이 있는경우)
if MarketPosition() == 0 and cnt == 1 Then{
if IsExitName("매수청산",1) == True Then{
if condition1 Then
buy("매수1");
}
if IsExitName("매수청산",1) == False Then{
if BarsSinceExit(1) >= 3 and condition1 Then
buy("매수2");
}
}
if var1 < var2 and c < value2 Then
exitlong("매수청산");
SetStopLoss(13);
답변 2
예스스탁 예스스탁 답변
2009-12-29 09:42:17
안녕하세요
예스스탁입니다.
첨부된 파일을 다운받으셔서 사용하시면 됩니다.
사용자함수를 다운받으신후 18393_는 지우고 사용하시기 바랍니다.
C:₩예스트레이더31₩YesLang₩Functions
폴더에 다운받으신 후 사용하시면 됩니다.
시스메틱 트레이더 카페에 사용자 함수를 올려드렸습니다.
즐거운 하루되세요
> 렌쯔 님이 쓴 글입니다.
> 제목 : LRS전략에서 RSquare함수
> 아래는 시스메틱 트레이더(네이버카페)에서 퍼온 소스인데
편집기에 넣으면 "선언되지 않은 이름 'RSquare'가 사용되었습니다."라고 오류납니다.
여기 검색해보니 유사한 함수가 있긴 한데, 입력받는 외부변수 개수가 다릅니다.
초보라서 봐도 잘 모르겠는데 보고 답변 좀 해주세요.
/*<지표들의 기간>
LRS 기간 : 30
LRS 신호선 : 7
결정계수(r-Squared) 기간 : 15
1.Set-Up
LRS가 신호선 상향돌파
LRS가 신호선 하향돌파
2.매수
LRS > 신호선
LRS > 전일 LRS
Rsqr > 0.3
Rsqr > 전일 Rsqr
최근 Set-UP①이 만족할 시점의 고가 이상일 때 진입
3.매수청산
LRS < 신호선
최근 Set-UP②가 만족할 시점의 저가 이하일 때 청산
4.매도
LRS < 신호선
LRS < 전일 LRS
Rsqr > 0.3
Rsqr > 전일 Rsqr
최근 Set-UP②가 만족할 시점의 저가 이하일 때 진입
5.매도청산
LRS > 신호선
최근 Set-UP①이 만족할 시점의 고가 이상일 때 청산
6.손절매
진입가에서 5% 이상 손실(마진콜 감안)
7.재진입 제한
손절매 청산 이후에는 3개 봉 경과 후 진입
*/
input : Period1(30),Period2(7),RSQR(15);
var : cnt(0);
var1 = LRS(c,Period1);
var2 = ema(var1,Period2);
var3 = RSquare(var1,var2,RSQR);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if crossup(var1,var2) Then
value1 = H;
if CrossDown(var1,var2) Then
value2 = L;
condition1 = var1 > var2 and var1 > var1[1] and var3 > 0.3 and var3 > var3[1] and C > value1;
condition2 = var1 < var2 and var1 < var1[1] and var3 > 0.3 and var3 > var3[1] and C < value2;
if condition1 == true Then
buy();
if var1 < var2 and C < value2 Then
exitlong();
if condition2 == True Then
sell();
if var1 < var2 and c > value1 Then
ExitShort();
SetStopLoss(5);
##차트상 첫진입(앞에 청산이 없는경우)
if MarketPosition() == 0 and cnt < 1 Then{
if condition1 Then{
buy("매수");
cnt = 1;
}
if condition2 Then{
sell("매도");
cnt = 1;
}
}
##첫진입 이후(앞에 청산이 있는경우)
if MarketPosition() == 0 and cnt == 1 Then{
if IsExitName("매수청산",1) == True Then{
if condition1 Then
buy("매수1");
}
if IsExitName("매수청산",1) == False Then{
if BarsSinceExit(1) >= 3 and condition1 Then
buy("매수2");
}
}
if var1 < var2 and c < value2 Then
exitlong("매수청산");
SetStopLoss(13);
ykiki
2008-11-17 14:51:28
ㅎㅎ