커뮤니티

문의 드립니다.

프로필 이미지
7out
2021-10-27 23:48:28
752
글번호 153205
답변완료
안녕하세요. 지난번에 작성해주신 수식을 테스트 하는 중에 수정이 필요한 부분이 있어서 문의 드립니다. 작성해주신 코드에서 2번 항목[지표 값이 갱신(새로운 6연속 양봉 발생) 된 이후] B) [포지션을 보유하고 있을 경우 (A 또는 B에서 진입한 경우)]의 -> 매수 포지션(A)를 손절 또는 수익 발생 후 C 또는 D를 돌파하는 경우 C,D 돌파거래를 각각 한번 거래를 진행한다. -> 매도 포지션(B)를 손절 또는 수익 발생 후 C 또는 D를 돌파하는 경우 C,D 돌파 거래를 각각 한번 거래를 진행한다. 또한 4번 항목 4. 목표 값 및 손절 값을 도달 못할 시 익일 오전 5:30분 (장 종료 30분전)에 보유 중인 모든 포지션을 자동 청산한다. 추가 부탁드립니다. 제가 직접 코드에 setstopendofday(xtime)을 넣었더니 익일 종가 청산 이후 다음날 거래에서 거래가 안됩니다. 꼭 답변 부탁 드립니다. 매번 감사합니다. 혹시 위에 문의 드린 내용이 구현 가능하지 않는다면 대체 방안을 알려 주시면 감사하겠습니다. ----------------------------------------------------------------------- A : 최초로 발생한 6연속 양봉의 (최고점) B : 최초로 발생한 6연속 양봉의 최저점 C : 두번째로 발생한 6연속 양봉의 (최고점) D : 두번째로 발생한 6연속 양봉의 최저점 거래시간: [진입시간: 금일 오전 11시부터 익일 오전 1:00, 청산시간: 금일 오전 11시부터, 익일 오전 5:30분 (장종료 30분전까지)] 1. 지표 값이 생성(최초로 발생한 6연속 양봉) 된 이후 -> A 돌파 시 한번의 매수 기회 / B 돌파 시 한번의 매도 기회가 주어진다. 예) A돌파 후 B에서 손절 -> B 스위칭 -> A도달시 손절 후 스위칭을 하지 않는다. 예) A돌파 후 목표가 청산 - > B돌파 이후 목표가 청산 - > A 또는 B 다시 돌파시 거래하지 않는다. 목표가: 1) 매수 진입 시: A+ (A-B) / 매도 진입시: B - (A-B) 2) 매수 진입(A 돌파) 시 손절 또는 수익 발생 후 다시 A를 돌파 하여도 거래하지 않는다. 매도 진입(B 돌파) 시 손절 또는 수익 발생 후 다시 B를 돌파 하여도 거래하지 않는다. 손절가: 1) A 돌파 시, B 값에 손절 후 스위칭(최초 B값 진입 시 스위칭 진행) / B 돌파 시, A 값에 손절 후 스위칭(최초 A값 진입 시 스위칭 진행) *목표가 및 손절가에 도달하지 못하고 지표 값이 갱신 될 경우 2번으로 넘어간다. 2. 지표 값이 갱신(새로운 6연속 양봉 발생) 된 이후 A) 보유하고 있는 포지션이 없을 경우 -> C 돌파 시 한번의 매수 기회 / D 돌파 시 한번의 매도 기회가 주어진다. 예) C돌파 후 B에서 손절 -> D 스위칭 -> C도달시 손절 후 스위칭을 하지 않는다. 예) C돌파 후 목표가 청산 - > D돌파 이후 목표가 청산 - > C 또는 D 다시 돌파시 거래하지 않는다. 목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D) 2) 매수 진입(C 돌파) 시 손절 또는 수익 발생 후 다시 C를 돌파 하여도 거래하지 않는다. 매도 진입(D 돌파) 시 손절 또는 수익 발생 후 다시 D를 돌파 하여도 거래하지 않는다. 손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) / D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행) B) 포지션을 보유하고 있을 경우 (A 또는 B에서 진입한 경우) -> 매수 또는 매도를 이미 진입한 경우 C, D를 이용하여 목표가 및 손절가를 새롭게 갱신한다. 목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D) 2) 매수 포지션을 손절 또는 수익 발생 후 C를 돌파하는 경우 단 한번 거래를 진행한다. 매도 포지션을 손절 또는 수익 발생 후 D를 돌파하는 경우 단 한번 거래를 진행한다. 손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) / D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행) 3. 지표 값이 지속적으로 갱신 될 경우 (E,F / G,H / I,J ....) -> 2번을 반복한다. 4. 목표 값 및 손절 값을 도달 못할 시 익일 오전 5:30분 (장 종료 30분전)에 보유 중인 모든 포지션을 자동 청산한다. ------------------------------------------------------------- input : n(6); input : StartTime(110000),EndTime(010000),Xtime(053000); var : HH(0),LL(0),Tcond(false); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Bdate != Bdate[1] Then { var1 = 0; HH = 0; LL = 0; Condition1 = False; Condition2 = False; } if (Bdate[n] != Bdate and CountIf(C>O,6) == 6) or (bdate[n] == bdate and CountIf(C>O,6) == 6 and C[6] < O[6]) Then { HH = Highest(H,6); LL = Lowest(L,6); } if Tcond == true and HH > 0 and LL > 0 Then { if CrossUp(C,HH) Then { if Condition1 == False Then Buy("b"); Else ExitShort("sx"); Condition1 = true; } if CrossDown(C,LL) Then { if Condition2 == False Then Sell("s"); Else ExitLong("bx"); Condition2 = true; } if MarketPosition == 1 Then ExitLong("bp",AtLimit,HH+(HH-LL)); if MarketPosition == -1 Then ExitShort("sp",AtLimit,LL-(HH-LL)); } -------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-10-28 16:42:18

안녕하세요 예스스탁입니다. input : n(6); input : StartTime(110000),EndTime(010000),Xtime(053000); var : HH(0),LL(0),Tcond(false),Bentry(0),Sentry(0); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Bdate != Bdate[1] Then { var1 = 0; HH = 0; LL = 0; Bentry = 0; Sentry = 0; } if (Bdate[n] != Bdate and CountIf(C>O,6) == 6) or (bdate[n] == bdate and CountIf(C>O,6) == 6 and C[6] < O[6]) Then { HH = Highest(H,6); LL = Lowest(L,6); Bentry = 0; Sentry = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bentry = Bentry+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then Sentry = Sentry+1; if Tcond == true and HH > 0 and LL > 0 Then { if CrossUp(C,HH) Then { if Bentry < 1 Then Buy("b"); Else ExitShort("sx"); } if CrossDown(C,LL) Then { if Sentry < 1 Then Sell("s"); Else ExitLong("bx"); } if MarketPosition == 1 Then ExitLong("bp",AtLimit,HH+(HH-LL)); if MarketPosition == -1 Then ExitShort("sp",AtLimit,LL-(HH-LL)); } IF xtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { IF xtime <= starttime Then { SetStopEndofday(0); } } 즐거운 하루되세요 > 7out 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 안녕하세요. 지난번에 작성해주신 수식을 테스트 하는 중에 수정이 필요한 부분이 있어서 문의 드립니다. 작성해주신 코드에서 2번 항목[지표 값이 갱신(새로운 6연속 양봉 발생) 된 이후] B) [포지션을 보유하고 있을 경우 (A 또는 B에서 진입한 경우)]의 -> 매수 포지션(A)를 손절 또는 수익 발생 후 C 또는 D를 돌파하는 경우 C,D 돌파거래를 각각 한번 거래를 진행한다. -> 매도 포지션(B)를 손절 또는 수익 발생 후 C 또는 D를 돌파하는 경우 C,D 돌파 거래를 각각 한번 거래를 진행한다. 또한 4번 항목 4. 목표 값 및 손절 값을 도달 못할 시 익일 오전 5:30분 (장 종료 30분전)에 보유 중인 모든 포지션을 자동 청산한다. 추가 부탁드립니다. 제가 직접 코드에 setstopendofday(xtime)을 넣었더니 익일 종가 청산 이후 다음날 거래에서 거래가 안됩니다. 꼭 답변 부탁 드립니다. 매번 감사합니다. 혹시 위에 문의 드린 내용이 구현 가능하지 않는다면 대체 방안을 알려 주시면 감사하겠습니다. ----------------------------------------------------------------------- A : 최초로 발생한 6연속 양봉의 (최고점) B : 최초로 발생한 6연속 양봉의 최저점 C : 두번째로 발생한 6연속 양봉의 (최고점) D : 두번째로 발생한 6연속 양봉의 최저점 거래시간: [진입시간: 금일 오전 11시부터 익일 오전 1:00, 청산시간: 금일 오전 11시부터, 익일 오전 5:30분 (장종료 30분전까지)] 1. 지표 값이 생성(최초로 발생한 6연속 양봉) 된 이후 -> A 돌파 시 한번의 매수 기회 / B 돌파 시 한번의 매도 기회가 주어진다. 예) A돌파 후 B에서 손절 -> B 스위칭 -> A도달시 손절 후 스위칭을 하지 않는다. 예) A돌파 후 목표가 청산 - > B돌파 이후 목표가 청산 - > A 또는 B 다시 돌파시 거래하지 않는다. 목표가: 1) 매수 진입 시: A+ (A-B) / 매도 진입시: B - (A-B) 2) 매수 진입(A 돌파) 시 손절 또는 수익 발생 후 다시 A를 돌파 하여도 거래하지 않는다. 매도 진입(B 돌파) 시 손절 또는 수익 발생 후 다시 B를 돌파 하여도 거래하지 않는다. 손절가: 1) A 돌파 시, B 값에 손절 후 스위칭(최초 B값 진입 시 스위칭 진행) / B 돌파 시, A 값에 손절 후 스위칭(최초 A값 진입 시 스위칭 진행) *목표가 및 손절가에 도달하지 못하고 지표 값이 갱신 될 경우 2번으로 넘어간다. 2. 지표 값이 갱신(새로운 6연속 양봉 발생) 된 이후 A) 보유하고 있는 포지션이 없을 경우 -> C 돌파 시 한번의 매수 기회 / D 돌파 시 한번의 매도 기회가 주어진다. 예) C돌파 후 B에서 손절 -> D 스위칭 -> C도달시 손절 후 스위칭을 하지 않는다. 예) C돌파 후 목표가 청산 - > D돌파 이후 목표가 청산 - > C 또는 D 다시 돌파시 거래하지 않는다. 목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D) 2) 매수 진입(C 돌파) 시 손절 또는 수익 발생 후 다시 C를 돌파 하여도 거래하지 않는다. 매도 진입(D 돌파) 시 손절 또는 수익 발생 후 다시 D를 돌파 하여도 거래하지 않는다. 손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) / D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행) B) 포지션을 보유하고 있을 경우 (A 또는 B에서 진입한 경우) -> 매수 또는 매도를 이미 진입한 경우 C, D를 이용하여 목표가 및 손절가를 새롭게 갱신한다. 목표가: 1) 매수 진입 시: C + (C-D) / 매도 진입시: D - (C-D) 2) 매수 포지션을 손절 또는 수익 발생 후 C를 돌파하는 경우 단 한번 거래를 진행한다. 매도 포지션을 손절 또는 수익 발생 후 D를 돌파하는 경우 단 한번 거래를 진행한다. 손절가: 1) C 돌파 시, D 값에 손절 후 스위칭(최초 D값 진입 시 스위칭 진행) / D 돌파 시, C 값에 손절 후 스위칭(최초 C값 진입 시 스위칭 진행) 3. 지표 값이 지속적으로 갱신 될 경우 (E,F / G,H / I,J ....) -> 2번을 반복한다. 4. 목표 값 및 손절 값을 도달 못할 시 익일 오전 5:30분 (장 종료 30분전)에 보유 중인 모든 포지션을 자동 청산한다. ------------------------------------------------------------- input : n(6); input : StartTime(110000),EndTime(010000),Xtime(053000); var : HH(0),LL(0),Tcond(false); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if Bdate != Bdate[1] Then { var1 = 0; HH = 0; LL = 0; Condition1 = False; Condition2 = False; } if (Bdate[n] != Bdate and CountIf(C>O,6) == 6) or (bdate[n] == bdate and CountIf(C>O,6) == 6 and C[6] < O[6]) Then { HH = Highest(H,6); LL = Lowest(L,6); } if Tcond == true and HH > 0 and LL > 0 Then { if CrossUp(C,HH) Then { if Condition1 == False Then Buy("b"); Else ExitShort("sx"); Condition1 = true; } if CrossDown(C,LL) Then { if Condition2 == False Then Sell("s"); Else ExitLong("bx"); Condition2 = true; } if MarketPosition == 1 Then ExitLong("bp",AtLimit,HH+(HH-LL)); if MarketPosition == -1 Then ExitShort("sp",AtLimit,LL-(HH-LL)); } -------------------------------------------------