커뮤니티
검토해주세요
2012-07-19 14:12:47
289
글번호 53023
아래와 같이 시스템수식을 작성한바 첨부파일에서 보여지는 바와 같이
1. 강제청산시 청산신호와 신규진입신호가 동시에 발생하게 되고
2. 다른 하나는 N 변수와 무관하게 이평선 Cross시 마다 청산신호가 발생 합니다. 이역시 다른 신호와 마찬가지로 N 변수 범위내에서는 발생하지 않도록 하고 십습니다.
아래 수식을 검토하시어 수정하여 주시면 감사 하겠습니다.(120틱차트 / 흑색150이평선/적색 600 이평선)
input : N(0.5);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
var1 = wma(c,150);
var2 = wma(c,600);
if (var1 > var2 and (crossup(c,var1) or crossup(c,var2))) Then{
if count == 0 then
buy();
if count > 0 and MarketPosition == 0 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitshort();
}
if var1 > var2 and count > 0 and MarketPosition == 0 and C > var1[BarsSinceExit(1)]+N Then
buy();
if (var1 > var2 and CrossDown(c,var1) or CrossDown(c,var2)) Then
ExitLong();
if (var1 < var2 and (CrossDown(c,var1) or crossdown(c,var2))) Then{
if count == 0 then
sell();
if count > 0 and MarketPosition == 0 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitlong();
}
if var1 < var2 and count > 0 and MarketPosition == 0 and C < var1[BarsSinceExit(1)]-N Then
sell();
if (var1 < var2 and CrossUp(c,var1) or CrossUp(c,var2)) Then
ExitShort();
- 1. question1.gif (0.07 MB)
답변 1
예스스탁 예스스탁 답변
2012-07-19 17:34:30
안녕하세요
예스스탁입니다.
input : N(0.5);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
var1 = wma(c,150);
var2 = wma(c,600);
if (var1 > var2 and (crossup(c,var1) or crossup(c,var2))) Then{
if count == 0 then
buy();
if count > 0 and MarketPosition == 0 and BarsSinceExit(1) >= 1 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitshort();
}
if var1 > var2 and count > 0 and BarsSinceExit(1) >= 1 and MarketPosition == 0 and C > var1[BarsSinceExit(1)]+N Then
buy();
if (var1 > var2 and CrossDown(c,var1) or CrossDown(c,var2)) Then
ExitLong();
if (var1 < var2 and (CrossDown(c,var1) or crossdown(c,var2))) Then{
if count == 0 then
sell();
if count > 0 and MarketPosition == 0 and BarsSinceExit(1) >= 1 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitlong();
}
if var1 < var2 and count > 0 and BarsSinceExit(1) >= 1 and MarketPosition == 0 and C < var1[BarsSinceExit(1)]-N Then
sell();
if (var1 < var2 and CrossUp(c,var1) or CrossUp(c,var2)) Then
ExitShort();
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 검토해주세요
> 아래와 같이 시스템수식을 작성한바 첨부파일에서 보여지는 바와 같이
1. 강제청산시 청산신호와 신규진입신호가 동시에 발생하게 되고
2. 다른 하나는 N 변수와 무관하게 이평선 Cross시 마다 청산신호가 발생 합니다. 이역시 다른 신호와 마찬가지로 N 변수 범위내에서는 발생하지 않도록 하고 십습니다.
아래 수식을 검토하시어 수정하여 주시면 감사 하겠습니다.(120틱차트 / 흑색150이평선/적색 600 이평선)
input : N(0.5);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
var1 = wma(c,150);
var2 = wma(c,600);
if (var1 > var2 and (crossup(c,var1) or crossup(c,var2))) Then{
if count == 0 then
buy();
if count > 0 and MarketPosition == 0 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
buy();
if count > 0 and MarketPosition == -1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitshort();
}
if var1 > var2 and count > 0 and MarketPosition == 0 and C > var1[BarsSinceExit(1)]+N Then
buy();
if (var1 > var2 and CrossDown(c,var1) or CrossDown(c,var2)) Then
ExitLong();
if (var1 < var2 and (CrossDown(c,var1) or crossdown(c,var2))) Then{
if count == 0 then
sell();
if count > 0 and MarketPosition == 0 and (var1 >= var1[BarsSinceExit(1)]+N or var1 <= var1[BarsSinceExit(1)]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 >= var1[BarsSinceentry]+N or var1 <= var1[BarsSinceentry]-N) then
sell();
if count > 0 and MarketPosition == 1 and (var1 <= var1[BarsSinceentry]+N or var1 >= var1[BarsSinceentry]-N) then
exitlong();
}
if var1 < var2 and count > 0 and MarketPosition == 0 and C < var1[BarsSinceExit(1)]-N Then
sell();
if (var1 < var2 and CrossUp(c,var1) or CrossUp(c,var2)) Then
ExitShort();