커뮤니티

시스템식 부탁드립니다.

프로필 이미지
묘선낭자
2013-05-10 03:23:40
243
글번호 63021
답변완료
1. 봉이 양봉이고 and 몇봉이 떨어져있건 관계없이 직전최근 음봉만 골라서 7개, 그 직전최근 7개음봉중 종가가 가장 낮은 음봉의 고가보다 종가가 클 때 매도청산하고 그 종가를 기억. 다음봉에서건 그다음봉이건 기억된 종가이하에 즉시 매수. 봉이 음봉이고 and 몇봉이 떨어져있건 관계없이 직전최근 양봉만 골라서 7개, 그 직전최근 7개음봉중 종가가 가장 높은 양봉의 저가보다 종가가 작을 때 매수청산하고 그 종가를 기억. 다음봉에서건 그 다음봉이건 기억된 종가이상에 즉시 매도. (일봉의 경우까지 감안한 식입니다.) 2. 아래내용에 대해 혼자서 만들어봐ㅆ는데요. 검증은 통과하는데 신호는 전혀 안 뜨네요. 분틱당일매매용(3시15분 강제청산) 매수 : 첫매매 : 종가>데이시가 두번째부터 : 직전(매수) : 현재데이중간값>데이시가 AND 최근 15봉중에 종가가 (데이저가+현재당일폭의 35%)를 넘어간 일이 있고,AND 종가가 그 15봉의 최고가를 2틱이상 뚫을 때 직전(매도) : 현재데이중간값>데이시가 AND 저가<(현재데이저가+현재당일폭의 45%) AND 저가>(현재데이저가+현재당일폭의 35%)일 때 매도 : 첫매매 : 종가<데이시가 두번째부터 : 직전(매도) : 현재데이중간값<데이시가 AND 최근15봉중에 종가가 (데이저가+현재당일폭의 65%)밑으로 간 사실이 있고 AND 종가가 그 15봉의 최저가를 2틱이상 밑돌 때 직전(매수) : 현재데이중간값<데이시가 AND 고가>(현재데이저가+현재당일폭의 55%) AND 고가<(현재데이저가+현재당일폭의 65%)일 때 매수청산 : (현재데이중간값>데이시가 AND 최근15봉중에 종가<(데이저가+현재당일폭의35%)인 일이 있고 AND 종가<그15봉의 최저가 일 때) OR (현재데이중간값<데이시가 AND 고가>(데이저가+현재당일폭의48%)일 때) OR (현재당일폭>4P일 때) 매도청산 : (현재데이중간값<데이시가 AND 최근15봉중에 종가>(데이저가+현재당일폭의65%)인 일이 있고 AND 종가>그 15봉의 최고가 일 때) OR (현재데이중간값>데이시가 AND 저가<(데이저가+현재당일폭의52%)일 때) OR (현재당일폭>4P일 때) var:cnt(0),count(0); count=0; fot count=0 to 20{ if sdare==Entrydate(cnt) Then count=counr+1 } If (count==0 and c>dayopen) or (count>=1 and NarketPosition(1)==1 and (dayhigh+daylow)/2>dayopen and countif(crossup(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and c>Highest(H,15)[1]+0.10) or (count>=1 and Matketposition(1)==-1 and (dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.45 and c>daylow+(dayhigh-daylow)*0.35) Then{ Buy(""); } If ((dayhigh+dayopen)/2>dayopen and countif(crossdown(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and c<Lowest(L,15)[1]) or ((dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.48) or dayhigh-daylow>4 Then{ Exitlong(""); } If (count==0 and c<dayopen) or (count>=1 and MarketPosition(1)==-1 and (dayhigh+daylow)/2<dayopen and countif(crossdown(c,daylow+(fayhigh-daylow)*0.65),15)>=1 and c<Lowest(L,15)[1]) or (count>=1 and MarketPosition(1)==1 and dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.55 and c<daylow+(dayhigh-daylow)*0.65) Then{ Sell(""); } If ((dayhigh+daylow/2<dayopen and countif(crossup(c,daylow+(daylow-dayhigh)*0.65))>=1 and c>Highest(H,15)[1]) or (dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.52) or dayhigh-daylow>4) Then{ Exitshort(""); } 틱을 몰라 그냥 숫자로 표시했는데 틱으로 고쳐써주시구요 (dayhigh+daylow)/2나 (dayhigh-daylow)처럼 반복되는 말을 치환하는 방법도 좀... 그리고 var와 value는 어떻게 다르고 어느때 사용하는지 간단한 설명도 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-10 11:09:01

안녕하세요 예스스탁입니다. 1. var : cnt(0),LowBB(0),LowBH(0),HighRB(0),HighRL(0); Array : BB[7](0),BH[7](0),RB[7](0),RL[7](0); if C < O Then{ BB[0] = C; BH[0] = H; var1 = var1+1; for cnt = 1 to 6{ BB[cnt] = BB[cnt-1][1]; BH[cnt] = BH[cnt-1][1]; } } if C > O Then{ RB[0] = C; RL[0] = L; var2 = var2+1; for cnt = 1 to 6{ RB[cnt] = RB[cnt-1][1]; RL[cnt] = RL[cnt-1][1]; } } LowBB = BB[0]; lowBH = BH[0]; HighRB = RB[0]; HighRL = RL[0]; for cnt = 0 to 6 { if BB[cnt] < LowBB Then{ LowBB = BB[cnt]; LowBH = BH[cnt]; } if RB[cnt] > HighRB Then{ HighRB = RB[cnt]; HighRL = RL[cnt]; } } if MarketPosition == 1 and C > O and var1 >= 7 and C > LowBH Then ExitShort("sx"); if MarketPosition == 0 and IsExitName("sx",1) == true and C < ExitPrice(1) Then buy(); if MarketPosition == 1 and C < O and var2 >= 7 and C < HighRL Then ExitLong("bx"); if MarketPosition == 0 and IsExitName("bx",1) == true and C > ExitPrice(1) Then sell(); 2. 올리신 식에서 당일진입 횟수를 세는 부분이 잘못작성되어 있습니다. for문의 count를 cnt로 변경하시면 됩니다. var:cnt(0),count(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } 3 수정한 식입니다. var:cnt(0),count(0),DayRange(0),DayMidPrice(0); count=0; for cnt=0 to 20{ if sdate==Entrydate(cnt) Then count=count+1; } DayRange = dayhigh-daylow; DayMidPrice = (dayhigh+daylow)/2; If (count==0 and c>dayopen) or (count>=1 and MarketPosition == 0 and marketPosition(1)==1 and DayMidPrice > dayopen and countif(crossup(c,daylow+DayRange*0.35),15)>=1 and c>Highest(H,15)[1]+PriceScale*2) or (count>=1 and ((MarketPosition == 0 and marketPosition(1)==-1) or (MarketPosition == -1)) and DayMidPrice>dayopen and c<daylow+DayRange*0.45 and c>daylow+DayRange*0.35) Then{ Buy(""); } If (DayMidPrice>dayopen and countif(crossdown(c,daylow+DayRange*0.35),15)>=1 and c<Lowest(L,15)[1]) or (DayMidPrice<dayopen and c>daylow+DayRange*0.48) or DayRange>4 Then{ Exitlong(""); } If (count==0 and c<dayopen) or (count>=1 and MarketPosition == 0 and MarketPosition(1)==-1 and DayMidPrice<dayopen and countif(crossdown(c,daylow+DayRange*0.65),15)>=1 and c<Lowest(L,15)[1]-PriceScale*2) or ( count>=1 and ((MarketPosition == 0 and MarketPosition(1)==1) or (MarketPosition == 1)) and DayMidPrice<dayopen and c>daylow+DayRange*0.55 and c<daylow+DayRange*0.65) Then{ Sell(""); } If (DayMidPrice<dayopen and countif(crossup(c,daylow+DayRange*0.65),15)>=1 and c>Highest(H,15)[1]) or (DayMidPrice>dayopen and c<daylow+DayRange*0.52) or DayRange>4 Then{ Exitshort(""); } 4 var1~var99와 value1~value99는 다른 부분이 있는 변수가 아닙니다. 단지 이름만 다른 숫자형 변수일뿐입니다. 원하시는 이름 골라서 숫자값을 저장해 사용하시면 됩니다. 즐거운 하루되세요 > 묘선낭자 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 1. 봉이 양봉이고 and 몇봉이 떨어져있건 관계없이 직전최근 음봉만 골라서 7개, 그 직전최근 7개음봉중 종가가 가장 낮은 음봉의 고가보다 종가가 클 때 매도청산하고 그 종가를 기억. 다음봉에서건 그다음봉이건 기억된 종가이하에 즉시 매수. 봉이 음봉이고 and 몇봉이 떨어져있건 관계없이 직전최근 양봉만 골라서 7개, 그 직전최근 7개음봉중 종가가 가장 높은 양봉의 저가보다 종가가 작을 때 매수청산하고 그 종가를 기억. 다음봉에서건 그 다음봉이건 기억된 종가이상에 즉시 매도. (일봉의 경우까지 감안한 식입니다.) 2. 아래내용에 대해 혼자서 만들어봐ㅆ는데요. 검증은 통과하는데 신호는 전혀 안 뜨네요. 분틱당일매매용(3시15분 강제청산) 매수 : 첫매매 : 종가>데이시가 두번째부터 : 직전(매수) : 현재데이중간값>데이시가 AND 최근 15봉중에 종가가 (데이저가+현재당일폭의 35%)를 넘어간 일이 있고,AND 종가가 그 15봉의 최고가를 2틱이상 뚫을 때 직전(매도) : 현재데이중간값>데이시가 AND 저가<(현재데이저가+현재당일폭의 45%) AND 저가>(현재데이저가+현재당일폭의 35%)일 때 매도 : 첫매매 : 종가<데이시가 두번째부터 : 직전(매도) : 현재데이중간값<데이시가 AND 최근15봉중에 종가가 (데이저가+현재당일폭의 65%)밑으로 간 사실이 있고 AND 종가가 그 15봉의 최저가를 2틱이상 밑돌 때 직전(매수) : 현재데이중간값<데이시가 AND 고가>(현재데이저가+현재당일폭의 55%) AND 고가<(현재데이저가+현재당일폭의 65%)일 때 매수청산 : (현재데이중간값>데이시가 AND 최근15봉중에 종가<(데이저가+현재당일폭의35%)인 일이 있고 AND 종가<그15봉의 최저가 일 때) OR (현재데이중간값<데이시가 AND 고가>(데이저가+현재당일폭의48%)일 때) OR (현재당일폭>4P일 때) 매도청산 : (현재데이중간값<데이시가 AND 최근15봉중에 종가>(데이저가+현재당일폭의65%)인 일이 있고 AND 종가>그 15봉의 최고가 일 때) OR (현재데이중간값>데이시가 AND 저가<(데이저가+현재당일폭의52%)일 때) OR (현재당일폭>4P일 때) var:cnt(0),count(0); count=0; fot count=0 to 20{ if sdare==Entrydate(cnt) Then count=counr+1 } If (count==0 and c>dayopen) or (count>=1 and NarketPosition(1)==1 and (dayhigh+daylow)/2>dayopen and countif(crossup(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and c>Highest(H,15)[1]+0.10) or (count>=1 and Matketposition(1)==-1 and (dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.45 and c>daylow+(dayhigh-daylow)*0.35) Then{ Buy(""); } If ((dayhigh+dayopen)/2>dayopen and countif(crossdown(c,daylow+(dayhigh-daylow)*0.35),15)>=1 and c<Lowest(L,15)[1]) or ((dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.48) or dayhigh-daylow>4 Then{ Exitlong(""); } If (count==0 and c<dayopen) or (count>=1 and MarketPosition(1)==-1 and (dayhigh+daylow)/2<dayopen and countif(crossdown(c,daylow+(fayhigh-daylow)*0.65),15)>=1 and c<Lowest(L,15)[1]) or (count>=1 and MarketPosition(1)==1 and dayhigh+daylow)/2<dayopen and c>daylow+(dayhigh-daylow)*0.55 and c<daylow+(dayhigh-daylow)*0.65) Then{ Sell(""); } If ((dayhigh+daylow/2<dayopen and countif(crossup(c,daylow+(daylow-dayhigh)*0.65))>=1 and c>Highest(H,15)[1]) or (dayhigh+daylow)/2>dayopen and c<daylow+(dayhigh-daylow)*0.52) or dayhigh-daylow>4) Then{ Exitshort(""); } 틱을 몰라 그냥 숫자로 표시했는데 틱으로 고쳐써주시구요 (dayhigh+daylow)/2나 (dayhigh-daylow)처럼 반복되는 말을 치환하는 방법도 좀... 그리고 var와 value는 어떻게 다르고 어느때 사용하는지 간단한 설명도 부탁드립니다.