커뮤니티

청산 질문 드립니다

프로필 이미지
엠씨용가
2020-05-19 13:49:02
1281
글번호 138973
답변완료
----------------------------------------------------------------------- 이 부분부터 질문입니다. 조건 1) ENTRY값을 돌파하면 매수진입 2) 초기 매수진입 후 ENTRY + NNR * 0.5 값을 돌파할 경우 피라미딩 진입(당일에만 사용) 3) 맨 마지막 진입한 매수가격에서 NNR 포인트 하락할 시 청산 4) 3)번 조건을 충족하지 않을 경우 익일 시가청산 5) 그리고 진입을 총 세번 하는 시스템을 짜려고 하는데요, 아래에 있는 식은 진입횟수가 총 두번인데 세번으로 바꾸고 싶으면 동일한 피라미딩 조건을 한번 더 입력하면 될까요? 매번 도움을 주셔서 대단히 감사합니다! IF H <= ENTRY AND NEXTBARSDATE == SDATE Then BUY("LONG",ATSTOP,ENTRY); IF MarketPosition== 1 AND STIME <153000 THEN { IF Highest(h,BarsSinceEntry) <= entry+ NNR *0.5 THEN buy("PL",ATSTOP,entry + nnr *0.5); } IF MarketPosition == 1 AND NextBarSdate == SDATE Then SetStopLoss(LatestEntryPrice-NNR,POINTSTOP); IF MARKETPOSITION == 1 AND NextBarSdate != SDATE Then ExitLong("EL",ATMARKET);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-05-19 14:54:18

안녕하세요 예스스탁입니다. 동일조건이면 수식을 변경하셔야 합니다. Highest(h,BarsSinceEntry) <= ENTRY+ NNR *0.5 조건은 ENTRY+ NNR *0.5가 가격이 높아지지 않으면 추가로 들어갈수 없는 내용입니다. 아래와 같이 수정하시면 됩니다. Highest(h,BarsSinceEntry)는 첫진입이후의 최고가인데 해당 부분은 최근 진입이후 최고가로 변경해서 가격이 낮아졌다가 다시 올라올때 진입하게 하시면 됩니다. var : hh(0); IF MarketPosition == 0 and H < ENTRY AND NEXTBARSDATE == SDATE Then BUY("LONG",ATSTOP,ENTRY); IF MarketPosition== 1 AND STIME <153000 THEN { if CurrentContracts > CurrentContracts[1] Then hh = h; if h > hh Then hh = h; IF MaxEntries < 2 and hh < ENTRY+ NNR *0.5 THEN buy("PL",ATSTOP,entry + nnr *0.5); IF MarketPosition == 1 then { if NextBarSdate == SDATE Then ExitLong("bx",AtStop,LatestEntryPrice(0)-NNR); IF NextBarSdate != SDATE Then ExitLong("EL",ATMARKET); } 즐거운 하루되세요 > 엠씨용가 님이 쓴 글입니다. > 제목 : 청산 질문 드립니다 > ----------------------------------------------------------------------- 이 부분부터 질문입니다. 조건 1) ENTRY값을 돌파하면 매수진입 2) 초기 매수진입 후 ENTRY + NNR * 0.5 값을 돌파할 경우 피라미딩 진입(당일에만 사용) 3) 맨 마지막 진입한 매수가격에서 NNR 포인트 하락할 시 청산 4) 3)번 조건을 충족하지 않을 경우 익일 시가청산 5) 그리고 진입을 총 세번 하는 시스템을 짜려고 하는데요, 아래에 있는 식은 진입횟수가 총 두번인데 세번으로 바꾸고 싶으면 동일한 피라미딩 조건을 한번 더 입력하면 될까요? 매번 도움을 주셔서 대단히 감사합니다! IF H <= ENTRY AND NEXTBARSDATE == SDATE Then BUY("LONG",ATSTOP,ENTRY); IF MarketPosition== 1 AND STIME <153000 THEN { IF Highest(h,BarsSinceEntry) <= entry+ NNR *0.5 THEN buy("PL",ATSTOP,entry + nnr *0.5); } IF MarketPosition == 1 AND NextBarSdate == SDATE Then SetStopLoss(LatestEntryPrice-NNR,POINTSTOP); IF MARKETPOSITION == 1 AND NextBarSdate != SDATE Then ExitLong("EL",ATMARKET);