커뮤니티

검토해주세요

프로필 이미지
너무조아
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
프로필 이미지

예스스탁 예스스탁 답변

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();