커뮤니티

문의드립니다.

프로필 이미지
맘속의행복
2017-03-13 18:32:18
166
글번호 107743
답변완료

첨부 이미지

안녕하세요 다계약 진입과 분할 청산에 대한 질문을 드리고 싶습니다. 아래 수식은 3계약 매수진입하여 2, 1계약씩 분할 청산하는 식입니다. 1) 수량 함수인 "def"을 입력하면 '시스템매매설정'창에서 거래수량을 따로 설정안해도 되나요? 2) "수량옵션"의 0과 1과 2의 차이점이 명확하게 이해가 안됩니다;; 각각의 옵션에 따라 어떻게 결과가 달라지는지 예시해주셨으면 합니다. 감사합니다. --------------------------------------------------------------------- var1 = ma(c,5); var2 = ma(c,20); if CrossUp(var1,var2) then{ Buy("진입명",Onclose,def,3); SetStopLoss(0.30,PointStop); } if MarketPosition == 1 Then{ if IsEntryName("진입명") == true Then ExitLong("bx1",atlimit,EntryPrice+PriceScale*10,"진입명",2,1); ExitLong("bx2",atlimit,EntryPrice+PriceScale*20,"진입명",1,1); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-03-14 11:39:49

안녕하세요 예스스탁입니다. 1. 수식안에서 지정된 내용이 우선됩니다. buy나 sell과 같이 진입함수에 수량을 지정하시면 설정창의 수량은 무시가 되도 진입함수에 수량이 지정되지 않으면 설정창의 수량이 반영됩니다 2 0,1,2는 분할청산때 사용하는 옵션입니다. 0은 진입별로 지정한 수량을 청산한다라는 내용이고 1은 전체진입에서 지정한 수량을 청산하다라는 내용입니다. 진입이 분할일때 구분이 의미있고 1회 진입후 분할청산은 구분이 의미가 없습니다. 매수1(수량3) --> 매수2(수량5) 위와 같이 2번에 걸려 매수진입을 하고 ExitLong("bx1",atlimit,EntryPrice+PriceScale*10,"진입명",2,0); 위 청산이 발생하면 매수1과 매수2에서 모두 2계약씩 청산해서 총 4계약 청산이 되고 남은 수량은 4계약이 됩니다. ExitLong("bx1",atlimit,EntryPrice+PriceScale*10,"진입명",2,1); 위 청산이 발생하면 전체 8계약 중 2계약만 청산되고 남은 수량은 6계약이 됩니다. 일반적으로는 수량옵션 0은 거의 사용되지 않고 1이 주로 사용됩니다. 옵션2는 1과 같은 방식으로 청산하는데 신호발생이 진입횟수와 관계없이 반복적으로 발생가능하게 하는 옵션입니다. 기본적으로 청산은 진입신호당 1번만 발생하게 됩니다. 아래식 적용해 보시면 if dayindex == 0 then buy("b",onclose,def,3); if MarketPosition == 1 and CrossDown(c,ma(C,20)) Then exitlong("bx",OnClose,def,"",1,1); 당일 첫봉에 매수진입후 20이평 하향이탈할때 한번만 청산이 발생하고 이후에 해당청산이 더이상 발생하지 않는 것을 보실수 있습니다 이때 옵션을 2로 변경해보시면 if dayindex == 0 then buy("b",onclose,def,3); if MarketPosition == 1 and CrossDown(c,ma(C,20)) Then exitlong("bx",OnClose,def,"",1,2); 동일청산이 조건에 만족하면 반복적으로 발생해 청산을 하는 것을 보실수 있습니다 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요 다계약 진입과 분할 청산에 대한 질문을 드리고 싶습니다. 아래 수식은 3계약 매수진입하여 2, 1계약씩 분할 청산하는 식입니다. 1) 수량 함수인 "def"을 입력하면 '시스템매매설정'창에서 거래수량을 따로 설정안해도 되나요? 2) "수량옵션"의 0과 1과 2의 차이점이 명확하게 이해가 안됩니다;; 각각의 옵션에 따라 어떻게 결과가 달라지는지 예시해주셨으면 합니다. 감사합니다. --------------------------------------------------------------------- var1 = ma(c,5); var2 = ma(c,20); if CrossUp(var1,var2) then{ Buy("진입명",Onclose,def,3); SetStopLoss(0.30,PointStop); } if MarketPosition == 1 Then{ if IsEntryName("진입명") == true Then ExitLong("bx1",atlimit,EntryPrice+PriceScale*10,"진입명",2,1); ExitLong("bx2",atlimit,EntryPrice+PriceScale*20,"진입명",1,1); }