커뮤니티

시스템식 요청드립니다.

프로필 이미지
맴맴잉
2023-11-14 23:45:56
1418
글번호 174060
답변완료

첨부 이미지

시스템식에 수정이 필요한 부분과 궁금한점이 있어 이렇게 요청드립니다. 1. (문의사항) 그림 1번에서 보시면 익절 청산을 했는데도 성능보고서에는 마이너스로 나오는데 왜 그러는걸까요?? 2. (요청사항) 그림 2번에서 보시면 매도포지션 잡고 있는 중에, 매수포지션이 오면, 바로 청산해버리고, 포지션을 갈아타는 경우가 생기는데, 현재 진입한 포지션이 청산되기 전까지 포지션 진입이 없고, 청산 이후에는 봉 10개 이후에 진입하는 식으로 요청드립니다. ------------------------------------------------------------------------------ input : EmaPeriod(50); input : RSIPeriod1(7),RSIPeriod2(14),RSIPeriod3(21),RSI차이(7); input : ADXPeriod(14); input : 익절(15),손절(15),N(10); var : Emav(0),RSI1(0),RSI2(0),RSI3(0),ADXv(0); var : Bcond(False),Scond(False); Emav = Ema(C,EmaPeriod); RSI1 = RSI(RSIPeriod1); RSI2 = RSI(RSIPeriod2); RSI3 = RSI(RSIPeriod3); ADXv = ADX(ADXperiod); Bcond = MarketPosition == 0 and MarketPosition(1) == 1 and MarketPosition(2) == 1; Scond = MarketPosition == 0 and MarketPosition(1) == -1 and MarketPosition(2) == -1; if C > Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 >= RSI2+RSI차이 and RSI2 >= RSI3+RSI차이 and RSI1 > 50 AND RSI2 > 50 AND RSI3 > 50 AND ADXV >= 21 and Bcond == False Then Buy("매수포지션"); if C < Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 <= RSI2-RSI차이 and RSI2 <= RSI3-RSI차이 and RSI1 < 50 AND RSI2 < 50 AND RSI3 < 50 AND ADXV >= 21 and Scond == False Then Sell("매도포지션"); if MarketPosition == 1 Then { ExitLong("매수-15포인트 익절",AtLimit,AvgEntryPrice+15); ExitLong("매수-손절",AtStop,AvgEntryPrice-15); } if MarketPosition == -1 Then { ExitShort("매도-15포인트 익절",AtLimit,AvgEntryPrice-15); ExitShort("매도-손절",AtStop,AvgEntryPrice+15); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-11-15 16:06:16

안녕하세요 예스스탁입니다. 1 시스템 트레이딩 설정창의 비용/수량탭에서 수수료와 슬리피지 설정 확인하시기 바랍니다. 리포트의 손익에는 지정한 수수료와 슬리피지가 비용으로 차감됩니다. 수수료와 슬리피지를 0으로 지정하시면 진입청산가격만으로 손익이 계산됩니다. 2 무포지션에만 진입하게 하시면 됩니다. input : EmaPeriod(50); input : RSIPeriod1(7),RSIPeriod2(14),RSIPeriod3(21),RSI차이(7); input : ADXPeriod(14); input : 익절(15),손절(15),N(10); var : Emav(0),RSI1(0),RSI2(0),RSI3(0),ADXv(0); var : Bcond(False),Scond(False); Emav = Ema(C,EmaPeriod); RSI1 = RSI(RSIPeriod1); RSI2 = RSI(RSIPeriod2); RSI3 = RSI(RSIPeriod3); ADXv = ADX(ADXperiod); Bcond = MarketPosition == 0 and MarketPosition(1) == 1 and MarketPosition(2) == 1; Scond = MarketPosition == 0 and MarketPosition(1) == -1 and MarketPosition(2) == -1; if MarketPosition == 0 and C > Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 >= RSI2+RSI차이 and RSI2 >= RSI3+RSI차이 and RSI1 > 50 AND RSI2 > 50 AND RSI3 > 50 AND ADXV >= 21 and Bcond == False Then Buy("매수포지션"); if MarketPosition == 0 and C < Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 <= RSI2-RSI차이 and RSI2 <= RSI3-RSI차이 and RSI1 < 50 AND RSI2 < 50 AND RSI3 < 50 AND ADXV >= 21 and Scond == False Then Sell("매도포지션"); if MarketPosition == 1 Then { ExitLong("매수-15포인트 익절",AtLimit,AvgEntryPrice+15); ExitLong("매수-손절",AtStop,AvgEntryPrice-15); } if MarketPosition == -1 Then { ExitShort("매도-15포인트 익절",AtLimit,AvgEntryPrice-15); ExitShort("매도-손절",AtStop,AvgEntryPrice+15); } 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 요청드립니다. > 시스템식에 수정이 필요한 부분과 궁금한점이 있어 이렇게 요청드립니다. 1. (문의사항) 그림 1번에서 보시면 익절 청산을 했는데도 성능보고서에는 마이너스로 나오는데 왜 그러는걸까요?? 2. (요청사항) 그림 2번에서 보시면 매도포지션 잡고 있는 중에, 매수포지션이 오면, 바로 청산해버리고, 포지션을 갈아타는 경우가 생기는데, 현재 진입한 포지션이 청산되기 전까지 포지션 진입이 없고, 청산 이후에는 봉 10개 이후에 진입하는 식으로 요청드립니다. ------------------------------------------------------------------------------ input : EmaPeriod(50); input : RSIPeriod1(7),RSIPeriod2(14),RSIPeriod3(21),RSI차이(7); input : ADXPeriod(14); input : 익절(15),손절(15),N(10); var : Emav(0),RSI1(0),RSI2(0),RSI3(0),ADXv(0); var : Bcond(False),Scond(False); Emav = Ema(C,EmaPeriod); RSI1 = RSI(RSIPeriod1); RSI2 = RSI(RSIPeriod2); RSI3 = RSI(RSIPeriod3); ADXv = ADX(ADXperiod); Bcond = MarketPosition == 0 and MarketPosition(1) == 1 and MarketPosition(2) == 1; Scond = MarketPosition == 0 and MarketPosition(1) == -1 and MarketPosition(2) == -1; if C > Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 >= RSI2+RSI차이 and RSI2 >= RSI3+RSI차이 and RSI1 > 50 AND RSI2 > 50 AND RSI3 > 50 AND ADXV >= 21 and Bcond == False Then Buy("매수포지션"); if C < Emav and (TotalTrades == 0 or (TotalTrades > 0 and BarsSinceExit(1) >= N)) and RSI1 <= RSI2-RSI차이 and RSI2 <= RSI3-RSI차이 and RSI1 < 50 AND RSI2 < 50 AND RSI3 < 50 AND ADXV >= 21 and Scond == False Then Sell("매도포지션"); if MarketPosition == 1 Then { ExitLong("매수-15포인트 익절",AtLimit,AvgEntryPrice+15); ExitLong("매수-손절",AtStop,AvgEntryPrice-15); } if MarketPosition == -1 Then { ExitShort("매도-15포인트 익절",AtLimit,AvgEntryPrice-15); ExitShort("매도-손절",AtStop,AvgEntryPrice+15); }