커뮤니티

수식 문의드립니다

프로필 이미지
회원
2006-08-31 13:59:22
1248
글번호 10738
답변완료
매수식1(최초매수)과 매수식 2가 있을때 매수1식이 손절하면 더이상 진입하지 않고 매수식 2가 계속 진입하도록 하고 매수2식도 손절하면 스톱 아니면 계속 진입하기 위한 식을 작성할때 트레일링 스톱을 setstoptrailing 함수를 쓰지 않고 풀어서 쓰고자 합니다 if date!=date[1] then cnt=0; if 매수식1 and cnt==0 then{ buy("1"); cnt=cnt+1; var1=0; } if marketposition()==1 and 청산조건 then exitlong("손절"); cnt=-1; } if marketposition()==1 and 청산조건 then exitlong("el1"); if marketposition()==1 and c>목표가격 then( var1=1; bval=c; } if var1==1 then{ if c< 목표가격-하락허용폭 then exitlong("trailingstop"); if barssinceexit(1)>10 and cnt>=1 and 매수식2 then{ buy("2"); var1=0; cnt=cnt+1; } 위와 같이 해봤는데 될때도 있고 진입하자마자 청산되는 에러가 가끔 발생합니다 수식 수정을 부탁드립니다 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2006-09-01 09:12:38

안녕하세요 예스스탁입니다. 진입과 동시에 청산이 나오는것은 진입식과 청산식이 동시에 조건을 만족하기 때문입니다. 해당 조건을 수정하시거나 혹은 진입식에 포지션 함수(marketposition()==0)을사용하여 제어하시기 바랍니다. 아래는 최대수익대비하락을 풀어쓴 예제입니다 참고하시기 바랍니다. nput : shortP(5), longP(20), 수익1(10), 손실1(5); var : 단기이평(0), 장기이평(0), buyVal(0), sellVal(0); 단기이평 = ma(C, shortP); 장기이평 = ma(C, longP); ### 매수식 if crossup(단기이평, 장기이평) and marketposition() != 1 then { buy(); var1 = 0; } ### 최대수익 대비 하락 (10% 수익후 5% 손실시) if marketposition() == 1 and C > entryprice(0) * (1 + 수익1/100) then { //문장1 var1 = 1; buyVal = C; //문장2 } if var1 == 1 then { if C < buyVal * (1 - 손실1/100) then //문장3 exitlong("TrailingStop(매수)"); } ### 매도식 if crossdown(단기이평, 장기이평) and marketposition() != -1 then { sell(); var2 = 0; } ### 최대수익 대비 하락 (10% 수익후 5% 손실시) if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4 var2 = -1; sellVal = C; //문장5 } if var2 == -1 then { if C > sellVal * (1 + 손실1/100) then //문장6 exitshort("TrailingStop(매도)"); } 즐거운 하루되세요 > 공부중 님이 쓴 글입니다. > 제목 : 수식 문의드립니다 > 매수식1(최초매수)과 매수식 2가 있을때 매수1식이 손절하면 더이상 진입하지 않고 매수식 2가 계속 진입하도록 하고 매수2식도 손절하면 스톱 아니면 계속 진입하기 위한 식을 작성할때 트레일링 스톱을 setstoptrailing 함수를 쓰지 않고 풀어서 쓰고자 합니다 if date!=date[1] then cnt=0; if 매수식1 and cnt==0 then{ buy("1"); cnt=cnt+1; var1=0; } if marketposition()==1 and 청산조건 then exitlong("손절"); cnt=-1; } if marketposition()==1 and 청산조건 then exitlong("el1"); if marketposition()==1 and c>목표가격 then( var1=1; bval=c; } if var1==1 then{ if c< 목표가격-하락허용폭 then exitlong("trailingstop"); if barssinceexit(1)>10 and cnt>=1 and 매수식2 then{ buy("2"); var1=0; cnt=cnt+1; } 위와 같이 해봤는데 될때도 있고 진입하자마자 청산되는 에러가 가끔 발생합니다 수식 수정을 부탁드립니다 감사합니다