커뮤니티

수식문의

프로필 이미지
ddd
2004-02-23 15:49:38
1624
글번호 2533
답변완료
수익대비 하락과 관련하여 질문합니다. 예를들면 macd(12,26,9) 시그날 골든크로스시 신규매수. 매수청산은 (1)시그날 데드크로시 매수청산이거나 (2) 진입가격 대비 0.5p 수익후 0.3p손실시 매수청산하고 매수조건을 만족하더라도 매수재진입을 금한다. 이전의 비슷한 질문과 답을 보아도 응용이 안되서 질문을 합니다. 이전의 관리자님 답변은 다음과 같습니다. 문의하신 식을 작성하면 다음과 같습니다... input : 수익1(30), 수익2(10), 손실1(10), 손실2(5); var : 단기이평(0), 장기이평(0), buyVal1(0), buyVal2(0); 단기이평 = ma(C, 5); 장기이평 = ma(C, 20); if crossup(단기이평, 장기이평) and marketposition() != 1 then //이평선 골든크로스 발생시 매수 buy(); ### 30% 수익후 10% 손실시 if C > entryprice(0) * (1 + 수익1/100) then { //진입가격대비 30% 수익 var1 = 1; buyVal1 = C; //진입가격대비 30% 수익날 때의 종가를 저장 } if var1 == 1 then { if C < buyVal1 * (1 - 손실1/100) and marketposition() == 1 then //진입후 30% 수익난 이후 10% 하락하면 exitlong(); } ### 10% 수익후 5% 손실시 if C > entryprice(0) * (1 + 수익2/100) then { //진입가격대비 10% 수익 var2 = 1; buyVal2 = C; //진입가격대비 10% 수익날 때의 종가를 저장 } if var2 == 1 then { if C < buyVal2 * (1 - 손실2/100) and marketposition() == 1 then //진입후 10% 수익난 이후 5% 하락하면 exitlong(); }
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2004-02-24 12:44:22

안녕하세요..예스스탁입니다. 강제청산 함수를 이용하여 작성해 보았습니다. [시스템식] var : macdV(0), macdS(0), cnt(0); SetStopTrailing(0.3,0.5,pointstop,1); //진입가격 대비 0.5p 수익후 0.3p손실시 강제청산 macdV = macd(12,26); macdS = ema(macdV,9); if date != date[1] then //날짜가 변경되면 cnt값을 0으로 초기화 cnt = 0; if CrossUp(macdV,macdS) and cnt == 0 then { //macd골든크로스 발생하고 매수진입이 0이면 buy(); cnt = cnt+1; //매수진입횟수를 누적 } if CrossDown(macdV,macdS) then exitlong(); 즐거운 날 되세요.. > ddd 님이 쓴 글입니다. > 제목 : 수식문의 > 수익대비 하락과 관련하여 질문합니다. 예를들면 macd(12,26,9) 시그날 골든크로스시 신규매수. 매수청산은 (1)시그날 데드크로시 매수청산이거나 (2) 진입가격 대비 0.5p 수익후 0.3p손실시 매수청산하고 매수조건을 만족하더라도 매수재진입을 금한다. 이전의 비슷한 질문과 답을 보아도 응용이 안되서 질문을 합니다. 이전의 관리자님 답변은 다음과 같습니다. 문의하신 식을 작성하면 다음과 같습니다... input : 수익1(30), 수익2(10), 손실1(10), 손실2(5); var : 단기이평(0), 장기이평(0), buyVal1(0), buyVal2(0); 단기이평 = ma(C, 5); 장기이평 = ma(C, 20); if crossup(단기이평, 장기이평) and marketposition() != 1 then //이평선 골든크로스 발생시 매수 buy(); ### 30% 수익후 10% 손실시 if C > entryprice(0) * (1 + 수익1/100) then { //진입가격대비 30% 수익 var1 = 1; buyVal1 = C; //진입가격대비 30% 수익날 때의 종가를 저장 } if var1 == 1 then { if C < buyVal1 * (1 - 손실1/100) and marketposition() == 1 then //진입후 30% 수익난 이후 10% 하락하면 exitlong(); } ### 10% 수익후 5% 손실시 if C > entryprice(0) * (1 + 수익2/100) then { //진입가격대비 10% 수익 var2 = 1; buyVal2 = C; //진입가격대비 10% 수익날 때의 종가를 저장 } if var2 == 1 then { if C < buyVal2 * (1 - 손실2/100) and marketposition() == 1 then //진입후 10% 수익난 이후 5% 하락하면 exitlong(); }
프로필 이미지

ddd

2004-02-24 15:14:05

ddd 님에 의해 삭제된 답변입니다.
프로필 이미지

ddd

2004-02-24 15:46:12

질문의 의도와는 다른 답변이어서 다시 질의 합니다. 2분봉 데이트레이딩 시스템이라 가정하며, 청산식에서만 (1)진입가격대비 0.5p 수익후 0.3p 손실시 강제청산을 하며, 신규매수 조건이 다시 발생하더라도 재진입을 하지 않는다 또는 (2)시그날 데드크로스시 청산하는 식으로 (1) "or" (2) 조건식입니다.
프로필 이미지

예스스탁 예스스탁 답변

2004-02-25 10:56:53

수정답변드립니다. 다음 식으로 적용해 보시기 바랍니다. input : drop(0.3), upPrice(0.5); var : macdV(0), macdS(0), cnt(0), buyVal(0), bIdx(0), bpos(0); macdV = macd(12,26); macdS = ema(macdV,9); if date != date[1] then //날짜가 변경되면 cnt를 0으로 초기화 cnt = 0; if CrossUp(macdV,macdS) and cnt == 0 then { //cnt == 0은 청산조건2를 만족한 적인 없었다는 것을 의미 buy(); buyVal = C; //매수진입가를 저장 bIdx = accum(1); //매수시점의 인덱스를 저장 bpos = 1; //포지션의 상태를 저장 } #청산조건1 if CrossDown(macdV,macdS) then { exitlong("1"); bpos = 0; } #청산조건2 var1 = highest(H,accum(1)-bidx); //진입이후 최고가를 나타냄 if var1 >= buyVal + 0.5 then { // 진입이후 최고가가 매수진입가+0.5보다 크거나 같으면 if CrossDown(C,var1-drop) and bpos == 1 then { //매수포지션상태에서 진입후최고가-0.3을 현재가가 하향이탈하면 exitlong("2"); cnt = cnt+1; // 2번조건에 의한 청산이 발행할 경우 cnt값을 누적 bpos = 0; } } > ddd 님이 쓴 글입니다. > 제목 : 다시 질문합니다 > 질문의 의도와는 다른 답변이어서 다시 질의 합니다. 2분봉 데이트레이딩 시스템이라 가정하며, 청산식에서만 (1)진입가격대비 0.5p 수익후 0.3p 손실시 강제청산을 하며, 신규매수 조건이 다시 발생하더라도 재진입을 하지 않는다 또는 (2)시그날 데드크로스시 청산하는 식으로 (1) "or" (2) 조건식입니다.