커뮤니티

비교해서 최대값 구할때 그리고 예약주문 설정하기, 갭보정 기능에 대해서

프로필 이미지
개냥이
2011-10-09 03:00:50
491
글번호 43474
답변완료
1. 현재봉과 이전봉의 고가중의 최대값을 구할때 max(H, H[1]) 이렇게 작성하는게 맞나요? 2. 그리고 위의 수식이 맞다면 특정 조건을 만족시킬때 stop 주문을 예약하려 하는데 지난번 답변에 보면 예약주문 현재 시점의 시장가위에 직접 예약주문을 넣는 기능은 없다고 하셔서 다음과 같이 해봤거든요. stop 주문은 양봉이후에 음봉이 완성되면 둘중 고가중에 최대값의 2틱(또는 변수 지정) 위에 진입하는것으로 지정하려 하는데 매수인 경우 Input : D_center(42), Period(26); var1 = (highest(H,D_center)+lowest(L,D_center))/2; if ema(C,Period) > var1[25] then # { if MarketPosition == 0 then ( if O > C and O[1] < C[1] and L[1] <= ema(C,Period)[1] and H[1] > ema(C,Period)[1] then buy("BUY", AtStop, max(H[1],H[2])+PriceScale*2) ; ) } 이렇게 작성해봤습니다. 실제 예약주문이 걸리는건 아니더라도 두 봉중에서 고점에서 2틱에 도달하면 주문체결되는식으로 구현해봤습니다. 그리고 AtStop 주문등을 사용할 경우에는 조건이 만족되는 신호가 발생하는 다음봉에서 진입이 바로 이루어지지 않으면 해제가 된다고 하더군요. 그렇다면 위와같은 경우 음봉의 종가가 만들어지자마자 신호가 발생하고 음봉 완성후 다음봉에서 진입하지 못하면 설정이 해제되는건가요? 그리고 종가가 만들어지자마자 신호 다음봉에 진입하기도 하지만 다음 두번째나 늦으면 4-5번째에서 진입하는 수도 생기는데 바로 다음봉에 진입하는 조건부터 5번째에 진입하는 조건까지 일일히 작성해 주어야 하는건가요? 3. 전략이 그날의 포지션은 모두 정리하고 오버는 안하는건데 단기 이평선값을 참조하여 진입신호를 검색해서 갭 보정이 되어있다면 장 초반에 시작하자마자 신호 나오는경우에 진입할수도 있는데 갭 보정이 안되어있는 상태에서 갭이 크다면 이평선값이 갭보정한 경우에 비해서 차이가 크기 때문에 진입 신호가 안나오거나 잘못된 신호가 나오는 경우도 생기겠다고 여겨지네요. 대략 이런 전력이라면 갭보정시에도 시뮬레이션이나 모의로 테스트할때 큰 문제는 없을까 해서요.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-10-10 10:04:15

안녕하세요 예스스탁입니다. 1. 예 맞습니다. 2. 참고로 양봉음봉의 두개봉의 최고가+2틱은 buy("BUY", AtStop, max(H,H[1])+PriceScale*2) ; 로 작성하셔야 합니다. atstop의 가격조건은 최근 완성된 봉에서 지정되므로 if문이 만족한 봉포한해서 2개의 고가중 최고가를 지정하시려면 max(H,H[1])+PriceScale*2 로 지정하셔야 합니다. atstop은 if문이 만족한 봉의 다음봉의 시세만 감시하고 다음봉에서 지정한 시세조건을 만족하지 않으면 해제됩니다. 그러므로 작성하신 식은 양봉다음 음봉이 만들어지고 다음봉이 이전의 2개봉의 최고가에서 2틱높은 시세가 발생하지 않으면 해제됩니다. 만약 지정한 조건이후에 계속 신호가 발생할때까지 atstop을 유지(재설정)하고자 하시면 지속적으로 atstop이 걸릴수 있도록 작성해 주셔야 합니다. Input : D_center(42), Period(26); var1 = (highest(H,D_center)+lowest(L,D_center))/2; if ema(C,Period) > var1[25] then { if if O > C and O[1] < C[1] and L[1] <= ema(C,Period)[1] and H[1] > ema(C,Period)[1] then value1 = max(H,H[1]); } if MarketPosition == 0 Then buy("BUY", AtStop, value1+PriceScale*2) ; 위와 같이 작성하시면 지정한 조건 만족하는 음봉발생시에 value1에 2개봉의 최고값을 저장하고 이후에 value1대비 2틱높은 시세가 나오면 신호발생하는 식이 됩니다. 다음봉의 시세를 감시하여 value1+PriceScale*2조건이 만족하지 않으면 해제되고 해당봉 완성시에 또 value1+PriceScale*2를 가격조건을 셋팅하여 다음봉을 감시해서 가게 됩니다. 신호발생시까지 계속 봉완성시 마다 가격조건을 걸어 다음봉을 감시합니다. 3. 차트의 갭보정 기능은 시스템에서는 사용되지 않습니다. 갭보정 기능은 당일의 데이터를 고정한 상태에서 과거일의 데이터는 모두 보정하여 변경하므로 시뮬레이션시에 과거날의 신호는 모두 부정확한 신호가 되어 사용되지 않습니다. 수식으로 보정한 값을 이용하여 갭보정 대신에 사용되기도 하지만 해당 수식도 차트의 과거 데이터 갯수에 영향을 받기에 문제가 있습니다. 즐거운 하루되세요 > 개냥이 님이 쓴 글입니다. > 제목 : 비교해서 최대값 구할때 그리고 예약주문 설정하기, 갭보정 기능에 대해서 > 1. 현재봉과 이전봉의 고가중의 최대값을 구할때 max(H, H[1]) 이렇게 작성하는게 맞나요? 2. 그리고 위의 수식이 맞다면 특정 조건을 만족시킬때 stop 주문을 예약하려 하는데 지난번 답변에 보면 예약주문 현재 시점의 시장가위에 직접 예약주문을 넣는 기능은 없다고 하셔서 다음과 같이 해봤거든요. stop 주문은 양봉이후에 음봉이 완성되면 둘중 고가중에 최대값의 2틱(또는 변수 지정) 위에 진입하는것으로 지정하려 하는데 매수인 경우 Input : D_center(42), Period(26); var1 = (highest(H,D_center)+lowest(L,D_center))/2; if ema(C,Period) > var1[25] then # { if MarketPosition == 0 then ( if O > C and O[1] < C[1] and L[1] <= ema(C,Period)[1] and H[1] > ema(C,Period)[1] then buy("BUY", AtStop, max(H[1],H[2])+PriceScale*2) ; ) } 이렇게 작성해봤습니다. 실제 예약주문이 걸리는건 아니더라도 두 봉중에서 고점에서 2틱에 도달하면 주문체결되는식으로 구현해봤습니다. 그리고 AtStop 주문등을 사용할 경우에는 조건이 만족되는 신호가 발생하는 다음봉에서 진입이 바로 이루어지지 않으면 해제가 된다고 하더군요. 그렇다면 위와같은 경우 음봉의 종가가 만들어지자마자 신호가 발생하고 음봉 완성후 다음봉에서 진입하지 못하면 설정이 해제되는건가요? 그리고 종가가 만들어지자마자 신호 다음봉에 진입하기도 하지만 다음 두번째나 늦으면 4-5번째에서 진입하는 수도 생기는데 바로 다음봉에 진입하는 조건부터 5번째에 진입하는 조건까지 일일히 작성해 주어야 하는건가요? 3. 전략이 그날의 포지션은 모두 정리하고 오버는 안하는건데 단기 이평선값을 참조하여 진입신호를 검색해서 갭 보정이 되어있다면 장 초반에 시작하자마자 신호 나오는경우에 진입할수도 있는데 갭 보정이 안되어있는 상태에서 갭이 크다면 이평선값이 갭보정한 경우에 비해서 차이가 크기 때문에 진입 신호가 안나오거나 잘못된 신호가 나오는 경우도 생기겠다고 여겨지네요. 대략 이런 전력이라면 갭보정시에도 시뮬레이션이나 모의로 테스트할때 큰 문제는 없을까 해서요.