커뮤니티

시스템식 요청드립니다.

프로필 이미지
맴맴잉
2023-05-04 08:53:57
1224
글번호 168694
답변완료
전에 아래와 같이 질문을 남겼었는데 답변을 주셨는데 안되는 부분이 있어 다시 올려봅니다. 1번에 2번에 답변을 보면 이전 직전에 대한 청산이 있어야 처음 매수매도진입이 가능한 걸로 나오는데.... 처음에 시스템을 적용했더니. 가장 처음에 청산이 없다보니 아예 매수매도 진입이 안되더라구요 가능한 방법이 있는지 확인 부탁드리겠습니다. ------------------------------------------------------------------------------ 질문 1) 아래의 해당식에서 조건을 추가하고 싶은 내용이 있는데 확인 부탁 드리겠습니다. if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); 위 식에서는 포지션 가지고 있는게 없고, 변수3을 종가가 하향 돌파하면 매수하는 식인데, 추가하고 싶은 조건은 청산한지 30분 후 부터 적용 입니다. 예를들어 오후 11시 20분에 '익절청산' 이 되었다면, 11시 50분 전까지는 변수3을 종가가 하향 돌파하면 매수되지 않다가 50분 이후부터 적용하게 되도록 부탁드립니다. 질문 2) if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) Then Sell("매도2"); 위의 식처럼 진입식이 있고, ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); 위의 식처럼 손절청산 식이 있습니다. 매수 진입 후 매수-손절 로 청산 되었다면 그 다음은 매도 포지션으로 진입하고 싶어서 진입식을 아래와 같이 수정했습니다. if MarketPosition == 0 and CrossDown(C,var3) and IsExitName("매도-손절",1) == true Then buy("매수1"); 이렇게 수정하였더니, 가장 처음 시스템 적용했을때, 앞에 청산이 없어서 적용이 안됩니다.ㅜ.ㅜ 어떻게 적용해야 할까요?? ------------------------------------------------------------------------------ 답변 ---------------------------------------------------------------------------- 1 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades == 1 and TimeToMinutes(sTime) >= TimeToMinutes(ExitTime(1))+30)) Then buy("매수1"); 2 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매도-손절",1) == true)) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매수-손절",1) == true)) Then Sell("매도2"); ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); -----------------------------------------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-05-04 11:47:05

안녕하세요 예스스탁입니다. 1 진입식에 청산후에 30분 경과후와 같은 내용을 추가하면 차트상 첫진입은 직전에 거래가 없으므로 청산후 30분 경과와 같은 내용은 조건을 충족할수 없습니다. 그러므로 진입식에 차트상 첫번쨰 진입은 청산후30분경과는 체크하지 말고 기존조건으로만 진입하게 하고 이후 한번 거래가 이루어진 후부터 청산이후 30분경과라는 내용을 넣으셔야 합니다. 또한 직전거래가 전일일수도 있고 이때는 30분 단위 지정이 의미가 없으므로 기존식에 날짜가 변경되면 이라는 내용도 추가해 드립니다. if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades >= 1 and TimeToMinutes(sTime) >= TimeToMinutes(ExitTime(1))+30) or (TotalTrades >= 1 and sDate > ExitDate(1))) Then buy("매수1"); 2 2번 내용은 수정해 드릴부분이 없습니다. 해당 내용은 직전 청산과 반대로 가는 내용으로 기존식 외에 수정해 드릴부분이 없습니다. 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 요청드립니다. > 전에 아래와 같이 질문을 남겼었는데 답변을 주셨는데 안되는 부분이 있어 다시 올려봅니다. 1번에 2번에 답변을 보면 이전 직전에 대한 청산이 있어야 처음 매수매도진입이 가능한 걸로 나오는데.... 처음에 시스템을 적용했더니. 가장 처음에 청산이 없다보니 아예 매수매도 진입이 안되더라구요 가능한 방법이 있는지 확인 부탁드리겠습니다. ------------------------------------------------------------------------------ 질문 1) 아래의 해당식에서 조건을 추가하고 싶은 내용이 있는데 확인 부탁 드리겠습니다. if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); 위 식에서는 포지션 가지고 있는게 없고, 변수3을 종가가 하향 돌파하면 매수하는 식인데, 추가하고 싶은 조건은 청산한지 30분 후 부터 적용 입니다. 예를들어 오후 11시 20분에 '익절청산' 이 되었다면, 11시 50분 전까지는 변수3을 종가가 하향 돌파하면 매수되지 않다가 50분 이후부터 적용하게 되도록 부탁드립니다. 질문 2) if MarketPosition == 0 and CrossDown(C,var3) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) Then Sell("매도2"); 위의 식처럼 진입식이 있고, ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); 위의 식처럼 손절청산 식이 있습니다. 매수 진입 후 매수-손절 로 청산 되었다면 그 다음은 매도 포지션으로 진입하고 싶어서 진입식을 아래와 같이 수정했습니다. if MarketPosition == 0 and CrossDown(C,var3) and IsExitName("매도-손절",1) == true Then buy("매수1"); 이렇게 수정하였더니, 가장 처음 시스템 적용했을때, 앞에 청산이 없어서 적용이 안됩니다.ㅜ.ㅜ 어떻게 적용해야 할까요?? ------------------------------------------------------------------------------ 답변 ---------------------------------------------------------------------------- 1 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades == 1 and TimeToMinutes(sTime) >= TimeToMinutes(ExitTime(1))+30)) Then buy("매수1"); 2 if MarketPosition == 0 and CrossDown(C,var3) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매도-손절",1) == true)) Then buy("매수1"); if MarketPosition == 0 and CrossUp(C,var1) and (TotalTrades == 0 or (TotalTrades >= 1 and IsExitName("매수-손절",1) == true)) Then Sell("매도2"); ExitLong("매수-손절",AtStop,AvgEntryPrice-100); ExitShort("매도-손절",AtStop,AvgEntryPrice+100); -----------------------------------------------------------------------------------