커뮤니티

예스스탁님, 적용했는데 않돼요~~

프로필 이미지
마수거리
2008-02-27 10:56:11
1345
글번호 14800
답변완료
수정해주신 식대로 적용을 한전kps 1분봉 챠트에 피라미딩 모두진입으로 했는데.... 1/3일 종가(일봉)가 5일 이동평균선(일봉)보다 작은데도... 매수진입이 됩니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 진입조건에 따른 분할매수매도 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 분봉에서 일봉의 이동평균 표현을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > sumv then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 진입조건에 따른 분할매수매도 > 아래의 식은 수식작성 예제에 있는 분할매수분할매도 식인데요... 주식1봉차트에 피라미딩을 모든신호허용으로 했습니다. 그런데, 진입조건을 일봉 현재가 < 일봉 5일선값이면 매수, 매수청산(매도) 모든 신호가 발생하지 않게하고 일봉 현재가 > 일봉 5일선값 이면 매수진입하도록 아래와 같이 식을 만들어 봤는데 의도대로 않되네요.. 무엇이 잘못되었는지 조언부탁드려요~ ㅜㅜ input : 기준수량(10); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > Ma(DayClose,5) then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > Ma(DayClose,5) then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; }
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2008-02-27 11:13:23

안녕하세요 예스스탁입니다. 식을 적용해 본결과 1월3일에 어떤 신호도 나오지 않습니다. 적용한 리포트를 올려드립니다. 또한 식상에는 추가매수부분에는 DayClose() > mav 수식이 들어가 있지 않습니다. 추가매수되는 부분에 해당 표현이 필요하시면 추가하시기 바랍니다. 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 예스스탁님, 적용했는데 않돼요~~ > 수정해주신 식대로 적용을 한전kps 1분봉 챠트에 피라미딩 모두진입으로 했는데.... 1/3일 종가(일봉)가 5일 이동평균선(일봉)보다 작은데도... 매수진입이 됩니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 진입조건에 따른 분할매수매도 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 분봉에서 일봉의 이동평균 표현을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > sumv then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 진입조건에 따른 분할매수매도 > 아래의 식은 수식작성 예제에 있는 분할매수분할매도 식인데요... 주식1봉차트에 피라미딩을 모든신호허용으로 했습니다. 그런데, 진입조건을 일봉 현재가 < 일봉 5일선값이면 매수, 매수청산(매도) 모든 신호가 발생하지 않게하고 일봉 현재가 > 일봉 5일선값 이면 매수진입하도록 아래와 같이 식을 만들어 봤는데 의도대로 않되네요.. 무엇이 잘못되었는지 조언부탁드려요~ ㅜㅜ input : 기준수량(10); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > Ma(DayClose,5) then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > Ma(DayClose,5) then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; }
프로필 이미지

마수거리

2008-02-27 11:33:44

??? DayClose() > mav 식을 어디에 추가를 해야하나요???? 그리고 피라미딩 설정을 모든신호진입으로 한것인가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 예스스탁님, 적용했는데 않돼요~~ > 안녕하세요 예스스탁입니다. 식을 적용해 본결과 1월3일에 어떤 신호도 나오지 않습니다. 적용한 리포트를 올려드립니다. 또한 식상에는 추가매수부분에는 DayClose() > mav 수식이 들어가 있지 않습니다. 추가매수되는 부분에 해당 표현이 필요하시면 추가하시기 바랍니다. 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 예스스탁님, 적용했는데 않돼요~~ > 수정해주신 식대로 적용을 한전kps 1분봉 챠트에 피라미딩 모두진입으로 했는데.... 1/3일 종가(일봉)가 5일 이동평균선(일봉)보다 작은데도... 매수진입이 됩니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 진입조건에 따른 분할매수매도 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 분봉에서 일봉의 이동평균 표현을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > sumv then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 진입조건에 따른 분할매수매도 > 아래의 식은 수식작성 예제에 있는 분할매수분할매도 식인데요... 주식1봉차트에 피라미딩을 모든신호허용으로 했습니다. 그런데, 진입조건을 일봉 현재가 < 일봉 5일선값이면 매수, 매수청산(매도) 모든 신호가 발생하지 않게하고 일봉 현재가 > 일봉 5일선값 이면 매수진입하도록 아래와 같이 식을 만들어 봤는데 의도대로 않되네요.. 무엇이 잘못되었는지 조언부탁드려요~ ㅜㅜ input : 기준수량(10); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > Ma(DayClose,5) then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > Ma(DayClose,5) then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; }
프로필 이미지

예스스탁 예스스탁 답변

2008-02-27 11:46:12

안녕하세요 예스스탁입니다. 설정은 모든 진입신호로 설정한 것입니다. 식을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price and DayClose() > mav then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price and DayClose() > mav then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > mav then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : Re : Re : 예스스탁님 > ??? DayClose() > mav 식을 어디에 추가를 해야하나요???? 그리고 피라미딩 설정을 모든신호진입으로 한것인가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 예스스탁님, 적용했는데 않돼요~~ > 안녕하세요 예스스탁입니다. 식을 적용해 본결과 1월3일에 어떤 신호도 나오지 않습니다. 적용한 리포트를 올려드립니다. 또한 식상에는 추가매수부분에는 DayClose() > mav 수식이 들어가 있지 않습니다. 추가매수되는 부분에 해당 표현이 필요하시면 추가하시기 바랍니다. 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 예스스탁님, 적용했는데 않돼요~~ > 수정해주신 식대로 적용을 한전kps 1분봉 챠트에 피라미딩 모두진입으로 했는데.... 1/3일 종가(일봉)가 5일 이동평균선(일봉)보다 작은데도... 매수진입이 됩니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 진입조건에 따른 분할매수매도 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 분봉에서 일봉의 이동평균 표현을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > sumv then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 진입조건에 따른 분할매수매도 > 아래의 식은 수식작성 예제에 있는 분할매수분할매도 식인데요... 주식1봉차트에 피라미딩을 모든신호허용으로 했습니다. 그런데, 진입조건을 일봉 현재가 < 일봉 5일선값이면 매수, 매수청산(매도) 모든 신호가 발생하지 않게하고 일봉 현재가 > 일봉 5일선값 이면 매수진입하도록 아래와 같이 식을 만들어 봤는데 의도대로 않되네요.. 무엇이 잘못되었는지 조언부탁드려요~ ㅜㅜ input : 기준수량(10); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > Ma(DayClose,5) then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > Ma(DayClose,5) then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; }
프로필 이미지

마수거리

2008-02-27 12:53:45

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 예스스탁님 > 안녕하세요 예스스탁입니다. 설정은 모든 진입신호로 설정한 것입니다. 식을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price and DayClose() > mav then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price and DayClose() > mav then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > mav then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : Re : Re : 예스스탁님 > ??? DayClose() > mav 식을 어디에 추가를 해야하나요???? 그리고 피라미딩 설정을 모든신호진입으로 한것인가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 예스스탁님, 적용했는데 않돼요~~ > 안녕하세요 예스스탁입니다. 식을 적용해 본결과 1월3일에 어떤 신호도 나오지 않습니다. 적용한 리포트를 올려드립니다. 또한 식상에는 추가매수부분에는 DayClose() > mav 수식이 들어가 있지 않습니다. 추가매수되는 부분에 해당 표현이 필요하시면 추가하시기 바랍니다. 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 예스스탁님, 적용했는데 않돼요~~ > 수정해주신 식대로 적용을 한전kps 1분봉 챠트에 피라미딩 모두진입으로 했는데.... 1/3일 종가(일봉)가 5일 이동평균선(일봉)보다 작은데도... 매수진입이 됩니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 진입조건에 따른 분할매수매도 > 안녕하세요 예스스탁입니다. 식을 수정했습니다. 분봉에서 일봉의 이동평균 표현을 추가했습니다. input : 기준수량(10),P(5); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0),sumv(0),mav(0),cnt(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; sumv = 0; for cnt = 0 to P-1 { sumv = sumv+dayclose(cnt); } mav = sumv/P; //일봉 이동평균 if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > mav then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > sumv then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; } 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : 진입조건에 따른 분할매수매도 > 아래의 식은 수식작성 예제에 있는 분할매수분할매도 식인데요... 주식1봉차트에 피라미딩을 모든신호허용으로 했습니다. 그런데, 진입조건을 일봉 현재가 < 일봉 5일선값이면 매수, 매수청산(매도) 모든 신호가 발생하지 않게하고 일봉 현재가 > 일봉 5일선값 이면 매수진입하도록 아래와 같이 식을 만들어 봤는데 의도대로 않되네요.. 무엇이 잘못되었는지 조언부탁드려요~ ㅜㅜ input : 기준수량(10); //분할매매 기준수량 input : 반전매수폭(20), 반전매도폭(20); //포지션반전폭 input : 매수폭(5); //직전매수가보다 n%하락시 매수 input : 매도폭(5); //직전매수가보다 n%상승시 매도 input : 거래개시일(20010101); //(20050101); var : 첫거래(1); var : 직전매수가(0), 직전매도가(0); var : N_직전매수가(0), N_직전매도가(0); var : dbg_flag(0), chk_price(0); 직전매수가 = N_직전매수가; 직전매도가 = N_직전매도가; if 거래개시일 < sdate then { ############################### if 첫거래 then { if DayClose() > Ma(DayClose,5) then { buy("최초", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; 첫거래 = 0; } } else if CurrentEntries() <= 20 then { if 직전매수가 == 0 then { // 직전 매도거래 일 경우, 매수반전가격 이하로 하락할 경우 chk_price = 직전매도가*(1-반전매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수1", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매도가*(1-반전매수폭/100); N_직전매도가 = 0; } } else { chk_price = 직전매수가*(1-매수폭/100); if c < chk_price and c[1] >= chk_price then { buy("매수2", OnClose, DEF, 기준수량); N_직전매수가 = C; //직전매수가*(1-매수폭/100); N_직전매도가 = 0; } } } // 청산처리 .................................................................... 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; } } 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; } } } } ############################### if marketposition(0) == 0 and 첫거래 == 0 and DayClose() > Ma(DayClose,5) then { buy("최초2", OnClose, DEF, 기준수량); N_직전매수가 = C;//최초거래가; N_직전매도가 = 0; }