커뮤니티
목표수익,최대허용손실관련문의
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;
작성했는데 목표수익은 조건에 따라 나뉘어서 실행되는데 최대허용손실은
무조건 한쪽만 만족하게 나오네요 수식의 문제가 있는듯 한데 조언 부탁드립니다.