커뮤니티

목표수익,최대허용손실관련문의

프로필 이미지
dfsfg
2004-04-01 10:54:57
1603
글번호 3015
답변완료
목표수익과 최대허용손실을 조건에 따라 다르게 적용하고 싶습니다. if 조건1 then { setstoploss(1.0, pointstop); setstopprofittarget(1.0, pointstop); } else if 조건2 then { setstoploss(1.5, pointstop); setstopprofittarget(1.5, pointstop); } else temp = 0; 작성했는데 목표수익은 조건에 따라 나뉘어서 실행되는데 최대허용손실은 무조건 한쪽만 만족하게 나오네요 수식의 문제가 있는듯 한데 조언 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2004-04-01 14:08:02

안녕하세요? 예스스탁입니다... 문의하신 내용을 예로 설명드리면 아래와 같습니다... 조건1일 경우 스탑이 1포인트, 조건 2일 경우 스탑이 1.5포인트 적용되는 예입니다. 각 조건에 marketposition() == 0으로 작성해준 이유에 대해서 설명드리변 다음과 같습니다. marketposition() == 0을 입력하지 않을 경우 조건2에 의해서 매수 진입한 이후 1.5포인트 강제청산 되기 이전에 조건1이 발생할 수 있습니다. 이 경우 이미 진입한 상태이기 때문에 진입신호(buy();)는 그대로 유지가 되나 강제청산조건(setstoploss(1.5, pointstop);, setstopprofittarget(1.5, pointstop);)은 조건1에 의해서(setstoploss(1.0, pointstop);, setstopprofittarget(1.0, pointstop);)로 바뀌게 됩니다. 따라서 조건2에 의해서 청산조건인 1.5포인트일때에만 청산이 되야하나 1.0포인트일 경우에도 청산이 되는 것입니다. 그렇기 때문에, marketposition() == 0을 입력한 이유는 포지션이 없을 경우에만 진입과 동시에 청산조건(setstoploss, setstopprofittarget)이 적용되게 하기 위해서입니다. var : 조건1(0), 조건2(0), temp(0); 조건1 = crossup(ma(c, 5), ma(c, 20)); 조건2 = crossup(stochasticsK(12, 5), stochasticsD(12,5,5)); if 조건1 and marketposition() == 0 then { //조건1에 의해서 진입 후 다시 조건2의 조건이 만족할 때 "청산"이 적용되지 않게함 buy("a"); setstoploss(1.0, pointstop); setstopprofittarget(1.0, pointstop); } else if 조건2 and marketposition() == 0 then { buy("b"); setstoploss(1.5, pointstop); setstopprofittarget(1.5, pointstop); } if crossdown(ma(c, 5), ma(c, 20)) then exitlong(); 감사합니다... > dfsfg 님이 쓴 글입니다. > 제목 : 목표수익,최대허용손실관련문의 > 목표수익과 최대허용손실을 조건에 따라 다르게 적용하고 싶습니다. if 조건1 then { setstoploss(1.0, pointstop); setstopprofittarget(1.0, pointstop); } else if 조건2 then { setstoploss(1.5, pointstop); setstopprofittarget(1.5, pointstop); } else temp = 0; 작성했는데 목표수익은 조건에 따라 나뉘어서 실행되는데 최대허용손실은 무조건 한쪽만 만족하게 나오네요 수식의 문제가 있는듯 한데 조언 부탁드립니다.