커뮤니티

진입 제한 예제 부탁드립니다.

프로필 이미지
일목초인
2020-11-22 18:26:15
639
글번호 144094
답변완료
다음과 같이 여러 개의 시스템이 합쳐져 있는 시스템에서 진입 제한 예제 부탁드립니다. 테스트를 위한 시스템 예제 기본 구성 // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 질문1 매수진입, 매도진입 각각 하루에 한번만 진입 허용하는 시스템 질문2 매수진입, 매도진입 각각 따로 매수진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하고 매도진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하는 시스템 질문3 매수진입 매도진입 관계없이 전체 시스템이 이익이 발생하면 진입금지하고 손실 발생시에만 1회 더 추가 진입 허용하는 시스템 질문4 매수진입 매도진입 관계없이 전체 시스템이 손실이 발생하면 진입금지하고 이익 발생시에만 1회 더 추가 진입 허용하는 시스템 항상 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-23 12:35:51

안녕하세요 예스스탁입니다. 1 var : Bcnt(0),Scnt(0); if Bdate != Bdate[1] Then { Bcnt = 0; Scnt = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bcnt = Bcnt+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then Scnt = Scnt+1; // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 and Bcnt < 1 Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 and Scnt < 1 Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 2 var : Bcnt(0),Scnt(0); if Bdate != Bdate[1] Then { Bcnt = 0; Scnt = 0; } if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then Bcnt = Bcnt+1; if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then Scnt = Scnt+1; // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 and (Bcnt < 1 or (Bcnt == 1 and MarketPosition(1) == 1 and IsExitName("매수손절",1) == true)) Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 and (Scnt < 1 or (Scnt == 1 and MarketPosition(1) == -1 and IsExitName("매도손절",1) == true)) Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 3 var : LossCnt(0),ProfitCnt(0); if Bdate != Bdate[1] Then { ProfitCnt = 0; LossCnt = 0; } if TotalTrades > TotalTrades[1] Then { if (IsExitName("매수익절",1) == true or IsExitName("매도익절",1) == true) Then ProfitCnt = ProfitCnt+1; if (IsExitName("매수손절",1) == true or IsExitName("매도손절",1) == true) Then LossCnt = LossCnt+1; } // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 and ProfitCnt < 1 and LossCnt < 2 Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 and ProfitCnt < 1 and LossCnt < 2 Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 4 var : LossCnt(0),ProfitCnt(0); if Bdate != Bdate[1] Then { ProfitCnt = 0; LossCnt = 0; } if TotalTrades > TotalTrades[1] Then { if (IsExitName("매수익절",1) == true or IsExitName("매도익절",1) == true) Then ProfitCnt = ProfitCnt+1; if (IsExitName("매수손절",1) == true or IsExitName("매도손절",1) == true) Then LossCnt = LossCnt+1; } // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 and ProfitCnt < 2 and LossCnt < 1 Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 and ProfitCnt < 2 and LossCnt < 1 Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 즐거운 하루되세요 > 일목초인 님이 쓴 글입니다. > 제목 : 진입 제한 예제 부탁드립니다. > 다음과 같이 여러 개의 시스템이 합쳐져 있는 시스템에서 진입 제한 예제 부탁드립니다. 테스트를 위한 시스템 예제 기본 구성 // 매수식 if MarketPosition==0 && sTime>093000 && sTime<140000 Then { if C>DayOpen*1.01 && C>O Then Buy("매수진입1",AtMarket,def,1); if C>DayOpen*1.01 && C>C[1] && C>C[2] Then Buy("매수진입2",AtMarket,def,1); } // 매수청산식 if MarketPosition==1 Then SetStopEndofday(150000); if MarketPosition==1 && C>EntryPrice*1.01 Then ExitLong("매수익절",AtMarket); if MarketPosition==1 && C<EntryPrice*0.99 Then ExitLong("매수손절",AtMarket); // 매도식 if MarketPosition==0 && sTime>093000 && sTime<140000 Then { if C<DayOpen*0.99 && C<O Then Sell("매도진입1",AtMarket,def,1); if C<DayOpen*0.99 && C<C[1] && C<C[2] Then Sell("매도진입2",AtMarket,def,1); } // 매도청산식 if MarketPosition==-1 Then SetStopEndofday(150000); if MarketPosition==-1 && C<EntryPrice*0.99 Then ExitShort("매도익절",AtMarket); if MarketPosition==-1 && C>EntryPrice*1.01 Then ExitShort("매도손절",AtMarket); 질문1 매수진입, 매도진입 각각 하루에 한번만 진입 허용하는 시스템 질문2 매수진입, 매도진입 각각 따로 매수진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하고 매도진입에서 이익 발생시 추가 진입금지하고 손실 발생시 1회 더 추가 진입 허용하는 시스템 질문3 매수진입 매도진입 관계없이 전체 시스템이 이익이 발생하면 진입금지하고 손실 발생시에만 1회 더 추가 진입 허용하는 시스템 질문4 매수진입 매도진입 관계없이 전체 시스템이 손실이 발생하면 진입금지하고 이익 발생시에만 1회 더 추가 진입 허용하는 시스템 항상 감사합니다.