커뮤니티

문의드립니다.

프로필 이미지
잡다백수
2019-05-02 14:11:57
274
글번호 128334
답변완료

첨부 이미지

코딩 감사합니다. API 카페 같은데 돌아다니다보면 예스스탁님 아니었음 이거 할 수나 있었을까 하는 생각이 듭니다. 매번 감사합니다. 1. 이렇게 진입제한 해두어서 모든 신호로 해도 추가진입한 놈들까지 손절되면 더 이상 진입 안하는데요. 여기서 직전 포지션이 수익이면 직전 포지션 고가 돌파할 때 진입(b2)하고 또 bb식으로 수량 쌓아나가다 떨어지면 청산 이렇게 하려면 어떻게 바꾸어야 하나요? 그러니까 진입횟수를 2번으로 해놓으면 b의 신호를 계속 쌓다가 청산되서 수익이면 -> b신호때 고가 돌파했을 때 재진입하고 또 포지션 쌓다가 청산되면 멈춤하는 식입니다. 만약에 3번 해놓으면 2번째 b2신호가 이익이면 또 고가 돌파하면 진입 뭐 이런 식이요. input: ATR기간(14),ATR곱셈(2),n(20); var : 매수단위(0),투입금액(0),ATRV(0); ATRV = atr(ATR기간); 매수단위 = 1; input : entryCount(1); var : count(0) ; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } if Count < entryCount then { if MarketPosition <= 0 and stime > 103000 then buy("b",AtStop,dayopen + n * PriceScale, 매수단위); } if MarketPosition == 1 Then { buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위); ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV ); } 2. 지금은 실험 안할거라 코드짜주실 필요는 없는데요. 피라미딩 추가진입도 횟수 제한 할 수 있나요? 대답만 해주시면 될 것 같습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-05-02 14:43:04

안녕하세요 예스스탁입니다. 1 input: ATR기간(14),ATR곱셈(2),n(20),당일진입횟수(2); var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0); ATRV = atr(ATR기간); 매수단위 = 1; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } #당일첫번째 진입(기존조건으로 진입) if MarketPosition <= 0 and Count == 0 and stime > 103000 then buy("b1",AtStop,dayopen + n * PriceScale, 매수단위); #당일 두번째 진입부터 당일 N번째 진입까지 #직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입 if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수 and stime > 103000 and H < HH then buy("b2",AtStop,H+ n * PriceScale, 매수단위); if MarketPosition == 1 Then { //진입이후 최고가 HH = highest(H,BarsSinceEntry); buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위); ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV ); } 2 추가진입의 제어는 간단합니다. 함수 중에 MaxEntries를 사용하시면 됩니다. MaxEntries가 현재 포지션의 최대누적진입횟수 입니다. 추가진입수식에 MaxEntries < 3 과 같은 조건을 주면 최대 3번(첫진입+추가진입+추가진입) 까지만 진입이 누적됩니다. 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 문의드립니다. > 코딩 감사합니다. API 카페 같은데 돌아다니다보면 예스스탁님 아니었음 이거 할 수나 있었을까 하는 생각이 듭니다. 매번 감사합니다. 1. 이렇게 진입제한 해두어서 모든 신호로 해도 추가진입한 놈들까지 손절되면 더 이상 진입 안하는데요. 여기서 직전 포지션이 수익이면 직전 포지션 고가 돌파할 때 진입(b2)하고 또 bb식으로 수량 쌓아나가다 떨어지면 청산 이렇게 하려면 어떻게 바꾸어야 하나요? 그러니까 진입횟수를 2번으로 해놓으면 b의 신호를 계속 쌓다가 청산되서 수익이면 -> b신호때 고가 돌파했을 때 재진입하고 또 포지션 쌓다가 청산되면 멈춤하는 식입니다. 만약에 3번 해놓으면 2번째 b2신호가 이익이면 또 고가 돌파하면 진입 뭐 이런 식이요. input: ATR기간(14),ATR곱셈(2),n(20); var : 매수단위(0),투입금액(0),ATRV(0); ATRV = atr(ATR기간); 매수단위 = 1; input : entryCount(1); var : count(0) ; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } if Count < entryCount then { if MarketPosition <= 0 and stime > 103000 then buy("b",AtStop,dayopen + n * PriceScale, 매수단위); } if MarketPosition == 1 Then { buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,매수단위); ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV ); } 2. 지금은 실험 안할거라 코드짜주실 필요는 없는데요. 피라미딩 추가진입도 횟수 제한 할 수 있나요? 대답만 해주시면 될 것 같습니다.