커뮤니티

재질문 드립니다.

프로필 이미지
앙두
2006-12-30 01:36:28
1220
글번호 11608
답변완료
답변 감사드립니다. 작성된 수식을 약간 변형하여 연결선물지수 30분봉(1999.01.01 ~ 현재)에 적용해 보니 다음과 같은 의문사항이 생겨 다시 문의드리게 되었습니다. (단, 피라미딩 설정은 모든 진입신호 허용, 주문수량 : 10,000, 진입횟수 : 200) - 의문사항 - 1. 제가 의도한 것은 매매수량 제한이지 매매횟수 제한이 아닌데 아래 수식 적용시 매매수량이 5계약이 되면 그 다음 부터는 매수 조건이 충족이 되어도 매수 진입이 안되고 있습니다. 즉 매매수량이 5계약이 된 이후에도 매수 조건이 충족되면 계속하여 매매수량 5계약으로 진입이 되었으면 합니다. 2. 시스템 결과보고서 거래내역을 보면, "수량"이 2,3,4,5 등으로로 잡힌 진입이 청산이 안되고 2006년 12월 현재까지 살아있습니다. 어떻게 하면 청산이 되지요? 3. 피라미딩 설정에서 진입계약수 횟수제한이 200으로 설정된 상태인데도 2000년 2월 이후에는 추가거래가 이루어지지 않고 있습니다. 어떻게 하면 2006년 12월 현재까지 계속하여 거래가 이루어 지는지 알려주시면 감사하겠습니다. - 적용수식 - input : 최초수량(1),기준수량(1); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(0.5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(19990101); //(20010101); input : 최대계약수(5); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if CrossDown(ma(C,20), ma(C,60)) then { buy("최초", OnClose, DEF, 최초수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; cnt = cnt +1; } } else if CurrentEntries() <= 최대계약수 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량+cnt); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; cnt = cnt +1; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량+cnt); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; cnt = cnt+1; } } } // 청산처리 .................................................................... if MarketPosition() == 1 then { if 직전매도가 == 0 then { // 직전 매수거래 일 경우, 매도반전가격 이상으로 상승할 경우 chk_price = 직전매수가*(1+반전매도폭/100); if c > chk_price and c[1] <= chk_price then { exitlong("청산1", OnClose, DEF, "", 기준수량, 1); N_직전매도가 = C; //직전매수가*(1+반전매도폭/100); N_직전매수가 = 0; cnt = 0; } } else { chk_price = 직전매도가*(1+매도폭/100); if c > chk_price and c[1] <= chk_price then { exitlong("청산2", OnClose, DEF, "", 기준수량, 1); N_직전매도가 = C; //직전매도가*(1+매도폭/100); N_직전매수가 = 0; cnt = 0; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and CrossDown(ma(C,20), ma(C,60)) then { buy("최초2", OnClose, DEF, 최초수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; cnt = cnt +1; }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2007-01-02 15:33:58

02-3453-1060 즐거운 하루되세요 > 앙두 님이 쓴 글입니다. > 제목 : 재질문 드립니다. > 답변 감사드립니다. 작성된 수식을 약간 변형하여 연결선물지수 30분봉(1999.01.01 ~ 현재)에 적용해 보니 다음과 같은 의문사항이 생겨 다시 문의드리게 되었습니다. (단, 피라미딩 설정은 모든 진입신호 허용, 주문수량 : 10,000, 진입횟수 : 200) - 의문사항 - 1. 제가 의도한 것은 매매수량 제한이지 매매횟수 제한이 아닌데 아래 수식 적용시 매매수량이 5계약이 되면 그 다음 부터는 매수 조건이 충족이 되어도 매수 진입이 안되고 있습니다. 즉 매매수량이 5계약이 된 이후에도 매수 조건이 충족되면 계속하여 매매수량 5계약으로 진입이 되었으면 합니다. 2. 시스템 결과보고서 거래내역을 보면, "수량"이 2,3,4,5 등으로로 잡힌 진입이 청산이 안되고 2006년 12월 현재까지 살아있습니다. 어떻게 하면 청산이 되지요? 3. 피라미딩 설정에서 진입계약수 횟수제한이 200으로 설정된 상태인데도 2000년 2월 이후에는 추가거래가 이루어지지 않고 있습니다. 어떻게 하면 2006년 12월 현재까지 계속하여 거래가 이루어 지는지 알려주시면 감사하겠습니다. - 적용수식 - input : 최초수량(1),기준수량(1); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(0.5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(19990101); //(20010101); input : 최대계약수(5); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if CrossDown(ma(C,20), ma(C,60)) then { buy("최초", OnClose, DEF, 최초수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; cnt = cnt +1; } } else if CurrentEntries() <= 최대계약수 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량+cnt); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; cnt = cnt +1; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량+cnt); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; cnt = cnt+1; } } } // 청산처리 .................................................................... if MarketPosition() == 1 then { if 직전매도가 == 0 then { // 직전 매수거래 일 경우, 매도반전가격 이상으로 상승할 경우 chk_price = 직전매수가*(1+반전매도폭/100); if c > chk_price and c[1] <= chk_price then { exitlong("청산1", OnClose, DEF, "", 기준수량, 1); N_직전매도가 = C; //직전매수가*(1+반전매도폭/100); N_직전매수가 = 0; cnt = 0; } } else { chk_price = 직전매도가*(1+매도폭/100); if c > chk_price and c[1] <= chk_price then { exitlong("청산2", OnClose, DEF, "", 기준수량, 1); N_직전매도가 = C; //직전매도가*(1+매도폭/100); N_직전매수가 = 0; cnt = 0; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and CrossDown(ma(C,20), ma(C,60)) then { buy("최초2", OnClose, DEF, 최초수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; cnt = cnt +1; }