커뮤니티

이것저것 문의드립니다.

프로필 이미지
잡다백수
2017-11-24 14:06:18
174
글번호 114461
답변완료
덕분에 도전하고 있습니다. 매번 감사합니다. 1. 시스템 이전에 투입금액을 봉 갯수로 나누어서 봉마다 진입, 이전 봉에 따라 다음 투입금액을 달리하는 코딩을 부탁드렸는데요. 한번 수정해서 이 비율에 외부변수를 곱해보니 모두 같은 결과가 나왔습니다. 제가 이해하기에는 봉마다 누적으로 비율이 바뀌니 시뮬결과도 다르게 나와야 할 것 같은데요. 모두 같은 결과가 나옵니다. 제가 착각하는 건지요. 설명 부탁드립니다. input : 투입금액(1000000),p(0.5); var : Rate(0); var1 = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate*p); Else value1 = value1+(value1*Rate*p); if MarketPosition >= 0 and sdate == 20171116 Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); [원질문 원답변] input : 투입금액(1000000); var : Rate(0); var1 = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate); Else value1 = value1+(value1*Rate); if MarketPosition >= 0 and sdate == 20171114 Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); 원질문 -설정금액 -투입금액: 봉갯수만큼 나눠서 매수 -봉 종가마다 매수 -봉 종가가 이전 종가보다 높으면 오른 퍼센테이지만큼 뺀 금액 매수 (예 종가가 1개봉전 종가보다 0.2% 올랐다. => 기존 투입금액의 98.8% 매수) -다음봉도 이전봉보다 0.2% 올랐다면 98.8%-(98.8%*0.2%) 금액만큼 매수(누적 개념으로) 반대로 봉 종가가 이전 종가보다 낮으면 내린 퍼센테이지만큼 더한 금액 매수 (예 종가가 1개봉전 종가보다 0.2%내렸다. => 현 투입금액*0.2% 더한 금액만큼 매수, 무조건 조건은 이전봉 기준으로, 예를 들어 계속 상승해서 95%투입하다가 다시 오르기 시작하면 95%투입 기준으로 더하기 시작) 청산: 다음날 시가에 청산. 2. 종목검색 해당날짜(외부변수)에 14:00까지 -거래대금 100억원 이상 -장대양봉(기준이 애매하면 그냥 길이가 n이상으로 작성부탁드립니다.) -당일 거래대금 순위 30위권 이내 -하루변동폭 a% 이상 을 기록한 종목 3. 설정금액 각 봉마다 투입금액은 설정금액/봉 타임프레임 봉 갯수 진입 -각 봉마다 봉 시가매수 봉 종가매도 -1번처럼 앞 포지션이 2% 수익이면 투입금액은 98% 이런식으로 투입금액 변화, 손실도 마찬가지로 4. 시스템 1번 수정한 시스템에 당일 전체 손실금액이 투입금액의 n%가 되면 진입제한 수식 부탁드립니다. 5. 기타 설정자금을 설정해놓고 봉갯수로 나누거나 n으로 나누어서 투입하는 식을 적용해보면 많은 금액을 적용했을 때 진입신호가 안나오는 경우가 생깁니다. 종목보다 적은 금액을 설정해놔서 진입신호가 안나오는 건 이해가 되는데요. 왜 많은 금액을 설정해놓으면 신호가 나오지 않을까요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-24 16:53:30

안녕하세요 예스스탁입니다. 1 해당식 이전에 수식을 한번 수정해 드린적이 있습니다. var1 = (C-C[1])/C[1]*100; 을 Rate = (C-C[1])/C[1]*100; 로 변경하시면 됩니다. 2 당일 거래대금 순위 30위권 이내 위 내용은 종목검색식으로 가능하지 않습니다. 종목검색수식에서 다른종목과 비교해 순위를 지정하거나 하는부분은 가능하지 않습니다. 해당 내용 제외하고 작성한 식입니다. input : 날자(20171124),n(10),aa(20); if sdate == 날자 and stime < 140000 and money >= 10000000000 and C >= O*(1+n/100) and H >= L*(1+aa/100) Then Condition1 = true; if Condition1 == true then find(1); 3 input : 투입금액(1000000),p(0.5); var : Rate(0),bars(0),mm(0); Rate = (C-C[1])/C[1]*100; bars = Floor(360/BarInterval); mm = 투입금액/bars; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate*p); Else value1 = value1+(value1*Rate*p); if MarketPosition >= 0 and sdate == 20171116 Then buy("b",AtMarket,def,floor((mm*value1)/NextBarOpen)); ExitLong("bx",OnClose); 4 input : 투입금액(1000000),p(0.5),n(20); var : Rate(0),entry(false); Rate = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate*p); Else value1 = value1+(value1*Rate*p); if sdate != sdate[1] Then entry = true; if PositionProfit(0) <= -(투입금액*(n/100)) Then entry = false; if MarketPosition >= 0 and sdate == 20171116 and entry == true Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); 5 시스템 트레이딩 설정창의 피라미딩탭 하단에 진입설정(동일포지션의 누적허용)에 수량 및 진입횟수를 큰값을 지정해 주시면 됩니다. 착오주문 방지를 위해 1회주문이나 혹은 포지션 누적주문이 지정한 수량이상 횟수이상으로는 발생하지 않게 되어 있습니다. 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 이것저것 문의드립니다. > 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 시스템 이전에 투입금액을 봉 갯수로 나누어서 봉마다 진입, 이전 봉에 따라 다음 투입금액을 달리하는 코딩을 부탁드렸는데요. 한번 수정해서 이 비율에 외부변수를 곱해보니 모두 같은 결과가 나왔습니다. 제가 이해하기에는 봉마다 누적으로 비율이 바뀌니 시뮬결과도 다르게 나와야 할 것 같은데요. 모두 같은 결과가 나옵니다. 제가 착각하는 건지요. 설명 부탁드립니다. input : 투입금액(1000000),p(0.5); var : Rate(0); var1 = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate*p); Else value1 = value1+(value1*Rate*p); if MarketPosition >= 0 and sdate == 20171116 Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); [원질문 원답변] input : 투입금액(1000000); var : Rate(0); var1 = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate); Else value1 = value1+(value1*Rate); if MarketPosition >= 0 and sdate == 20171114 Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); 원질문 -설정금액 -투입금액: 봉갯수만큼 나눠서 매수 -봉 종가마다 매수 -봉 종가가 이전 종가보다 높으면 오른 퍼센테이지만큼 뺀 금액 매수 (예 종가가 1개봉전 종가보다 0.2% 올랐다. => 기존 투입금액의 98.8% 매수) -다음봉도 이전봉보다 0.2% 올랐다면 98.8%-(98.8%*0.2%) 금액만큼 매수(누적 개념으로) 반대로 봉 종가가 이전 종가보다 낮으면 내린 퍼센테이지만큼 더한 금액 매수 (예 종가가 1개봉전 종가보다 0.2%내렸다. => 현 투입금액*0.2% 더한 금액만큼 매수, 무조건 조건은 이전봉 기준으로, 예를 들어 계속 상승해서 95%투입하다가 다시 오르기 시작하면 95%투입 기준으로 더하기 시작) 청산: 다음날 시가에 청산. 2. 종목검색 해당날짜(외부변수)에 14:00까지 -거래대금 100억원 이상 -장대양봉(기준이 애매하면 그냥 길이가 n이상으로 작성부탁드립니다.) -당일 거래대금 순위 30위권 이내 -하루변동폭 a% 이상 을 기록한 종목 3. 설정금액 각 봉마다 투입금액은 설정금액/봉 타임프레임 봉 갯수 진입 -각 봉마다 봉 시가매수 봉 종가매도 -1번처럼 앞 포지션이 2% 수익이면 투입금액은 98% 이런식으로 투입금액 변화, 손실도 마찬가지로 4. 시스템 1번 수정한 시스템에 당일 전체 손실금액이 투입금액의 n%가 되면 진입제한 수식 부탁드립니다. 5. 기타 설정자금을 설정해놓고 봉갯수로 나누거나 n으로 나누어서 투입하는 식을 적용해보면 많은 금액을 적용했을 때 진입신호가 안나오는 경우가 생깁니다. 종목보다 적은 금액을 설정해놔서 진입신호가 안나오는 건 이해가 되는데요. 왜 많은 금액을 설정해놓으면 신호가 나오지 않을까요?