커뮤니티

재 문의 드립니다..

프로필 이미지
락뽀드
2011-04-09 14:02:07
640
글번호 37426
답변완료
지난번 문의드린 수식에서 몇가지 보완했으면 해서 다시 질문드립니다.. 지난번에 작성해주신 수식에서 먼저 수식을 적용하면 시작시간에 조건에 맞지않는 sloss 가 한번 실행되고 난후 정상 작동을 하는 모습을 볼수 있습니다.. 수정해 주시면 감사하겠구요.. 그리고 지난번 수식요청할때 빠뜨리고 넣지않은 조건인데 추가해 주시면 감사하겠습니다.. 우리나라 시간으로 새벽 03:30분(미국시간 13:30)이후에는 6단계까지의 진입은 허용하고 진입된것이 청산된 후의 신규진입은 하지 않고 매매를 끝낼수 있게 해주시고, 만약 청산이 되지 않고새벽 5시까지 포지션이 있다면 5시에 일괄청산 한다 라는 수식을 추가해 주시면 감사하겠습니다.. 다시 시간조건을 정리 하자면... 10시(미국시간 20시)정각에 매매를 시작하고 03:30분(미국시간 13:30분)이후 포지션이 없다면 신규진입은 하지 말것이며 만약 포지션이 있다면 조건에 만족하는 단계까지가서 청산하고 청산한 이후에는 신규진입은 하지 않는다. 만일 5시까지 청산되지 않은 보유 포지션이 있다면 5시에 일괄 청산한다. 늘 고객들을 위해 애쓰시는 노고에 감사드립니다.. 행복한 하루 되세요..^^ input : Starttime(200000),endtime(140000); var : entryset(0); # 10시 기준으로 1값씩 상승 if (stime == Starttime) or crossup(stime,Starttime) Then{ var1 = var1+1; var2 = O; } #직전청산시 var1값과 현재 var1값이 다르면 당일 첫진입 if var1 != var1[BarsSinceExit(1)] Then{ entryset = var2; } if var1 == var1[BarsSinceExit(1)] Then{ entryset = ExitPrice(1); } var3 = PriceScale*10; if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 Then Sell("s1",atlimit,entryset+var3*5,1); if MarketPosition == -1 Then{ Sell("s2",atlimit,entryset+var3*10,1); Sell("s3",atlimit,entryset+var3*15,2); Sell("s4",atlimit,entryset+var3*20,3); Sell("s5",atlimit,entryset+var3*25,5); Sell("s6",atlimit,entryset+var3*30,8); if CurrentEntries == 1 Then ExitShort("sx1",AtLimit,(entryset+var3*5)-var3*10); if CurrentEntries == 2 Then ExitShort("sx2",AtLimit,(entryset+var3*10)-var3*10); if CurrentEntries == 3 Then ExitShort("sx3",AtLimit,(entryset+var3*15)-var3*10); if CurrentEntries == 4 Then ExitShort("sx4",AtLimit,(entryset+var3*20)-var3*10); if CurrentEntries == 5 Then ExitShort("sx5",AtLimit,(entryset+var3*25)-var3*10); if CurrentEntries == 6 Then{ ExitShort("sx6",AtLimit,(entryset+var3*30)-var3*10); ExitShort("SLoss",AtStop,(entryset+var3*30)+var3*10); } } } if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 Then Buy("b1",atlimit,entryset-var3*5,1); if MarketPosition == 1 Then{ Buy("b2",atlimit,entryset-var3*10,1); Buy("b3",atlimit,entryset-var3*15,2); Buy("b4",atlimit,entryset-var3*20,3); Buy("b5",atlimit,entryset-var3*25,5); Buy("b6",atlimit,entryset-var3*30,8); if CurrentEntries == 1 Then ExitLong("bx1",AtLimit,(entryset-var3*5)+var3*10); if CurrentEntries == 2 Then ExitLong("bx2",AtLimit,(entryset-var3*10)+var3*10); if CurrentEntries == 3 Then ExitLong("bx3",AtLimit,(entryset-var3*15)+var3*10); if CurrentEntries == 4 Then ExitLong("bx4",AtLimit,(entryset-var3*20)+var3*10); if CurrentEntries == 5 Then ExitLong("bx5",AtLimit,(entryset-var3*25)+var3*10); if CurrentEntries == 6 Then{ ExitLong("bx6",AtLimit,(entryset-var3*30)+var3*10); ExitLong("bLoss",AtStop,(entryset-var3*30)-var3*10); } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-04-11 10:21:01

안녕하세요 예스스탁입니다. 수정한 식입니다. input : Starttime(200000),endtime(140000); var : entryset(0); # 10시 기준으로 1값씩 상승 if (stime == Starttime) or crossup(stime,Starttime) Then{ var1 = var1+1; var2 = O; } #직전청산시 var1값과 현재 var1값이 다르면 당일 첫진입 if var1 != var1[BarsSinceExit(1)] Then{ entryset = var2; } if var1 == var1[BarsSinceExit(1)] Then{ entryset = ExitPrice(1); } var3 = PriceScale*10; if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 and stime < 133000 Then Sell("s1",atlimit,entryset+var3*5,1); if MarketPosition == -1 Then{ Sell("s2",atlimit,entryset+var3*10,1); Sell("s3",atlimit,entryset+var3*15,2); Sell("s4",atlimit,entryset+var3*20,3); Sell("s5",atlimit,entryset+var3*25,5); Sell("s6",atlimit,entryset+var3*30,8); if CurrentEntries == 1 Then ExitShort("sx1",AtLimit,(entryset+var3*5)-var3*10); if CurrentEntries == 2 Then ExitShort("sx2",AtLimit,(entryset+var3*10)-var3*10); if CurrentEntries == 3 Then ExitShort("sx3",AtLimit,(entryset+var3*15)-var3*10); if CurrentEntries == 4 Then ExitShort("sx4",AtLimit,(entryset+var3*20)-var3*10); if CurrentEntries == 5 Then ExitShort("sx5",AtLimit,(entryset+var3*25)-var3*10); if CurrentEntries == 6 Then{ ExitShort("sx6",AtLimit,(entryset+var3*30)-var3*10); ExitShort("SLoss",AtStop,(entryset+var3*30)+var3*10); } } } if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 Then Buy("b1",atlimit,entryset-var3*5,1); if MarketPosition == 1 Then{ Buy("b2",atlimit,entryset-var3*10,1); Buy("b3",atlimit,entryset-var3*15,2); Buy("b4",atlimit,entryset-var3*20,3); Buy("b5",atlimit,entryset-var3*25,5); Buy("b6",atlimit,entryset-var3*30,8); if CurrentEntries == 1 Then ExitLong("bx1",AtLimit,(entryset-var3*5)+var3*10); if CurrentEntries == 2 Then ExitLong("bx2",AtLimit,(entryset-var3*10)+var3*10); if CurrentEntries == 3 Then ExitLong("bx3",AtLimit,(entryset-var3*15)+var3*10); if CurrentEntries == 4 Then ExitLong("bx4",AtLimit,(entryset-var3*20)+var3*10); if CurrentEntries == 5 Then ExitLong("bx5",AtLimit,(entryset-var3*25)+var3*10); if CurrentEntries == 6 Then{ ExitLong("bx6",AtLimit,(entryset-var3*30)+var3*10); ExitLong("bLoss",AtStop,(entryset-var3*30)-var3*10); } } } if stime == 150000 then{ exitlong(); exitshort(); } 즐거운 하루되세요 > 락뽀드 님이 쓴 글입니다. > 제목 : 재 문의 드립니다.. > 지난번 문의드린 수식에서 몇가지 보완했으면 해서 다시 질문드립니다.. 지난번에 작성해주신 수식에서 먼저 수식을 적용하면 시작시간에 조건에 맞지않는 sloss 가 한번 실행되고 난후 정상 작동을 하는 모습을 볼수 있습니다.. 수정해 주시면 감사하겠구요.. 그리고 지난번 수식요청할때 빠뜨리고 넣지않은 조건인데 추가해 주시면 감사하겠습니다.. 우리나라 시간으로 새벽 03:30분(미국시간 13:30)이후에는 6단계까지의 진입은 허용하고 진입된것이 청산된 후의 신규진입은 하지 않고 매매를 끝낼수 있게 해주시고, 만약 청산이 되지 않고새벽 5시까지 포지션이 있다면 5시에 일괄청산 한다 라는 수식을 추가해 주시면 감사하겠습니다.. 다시 시간조건을 정리 하자면... 10시(미국시간 20시)정각에 매매를 시작하고 03:30분(미국시간 13:30분)이후 포지션이 없다면 신규진입은 하지 말것이며 만약 포지션이 있다면 조건에 만족하는 단계까지가서 청산하고 청산한 이후에는 신규진입은 하지 않는다. 만일 5시까지 청산되지 않은 보유 포지션이 있다면 5시에 일괄 청산한다. 늘 고객들을 위해 애쓰시는 노고에 감사드립니다.. 행복한 하루 되세요..^^ input : Starttime(200000),endtime(140000); var : entryset(0); # 10시 기준으로 1값씩 상승 if (stime == Starttime) or crossup(stime,Starttime) Then{ var1 = var1+1; var2 = O; } #직전청산시 var1값과 현재 var1값이 다르면 당일 첫진입 if var1 != var1[BarsSinceExit(1)] Then{ entryset = var2; } if var1 == var1[BarsSinceExit(1)] Then{ entryset = ExitPrice(1); } var3 = PriceScale*10; if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 Then Sell("s1",atlimit,entryset+var3*5,1); if MarketPosition == -1 Then{ Sell("s2",atlimit,entryset+var3*10,1); Sell("s3",atlimit,entryset+var3*15,2); Sell("s4",atlimit,entryset+var3*20,3); Sell("s5",atlimit,entryset+var3*25,5); Sell("s6",atlimit,entryset+var3*30,8); if CurrentEntries == 1 Then ExitShort("sx1",AtLimit,(entryset+var3*5)-var3*10); if CurrentEntries == 2 Then ExitShort("sx2",AtLimit,(entryset+var3*10)-var3*10); if CurrentEntries == 3 Then ExitShort("sx3",AtLimit,(entryset+var3*15)-var3*10); if CurrentEntries == 4 Then ExitShort("sx4",AtLimit,(entryset+var3*20)-var3*10); if CurrentEntries == 5 Then ExitShort("sx5",AtLimit,(entryset+var3*25)-var3*10); if CurrentEntries == 6 Then{ ExitShort("sx6",AtLimit,(entryset+var3*30)-var3*10); ExitShort("SLoss",AtStop,(entryset+var3*30)+var3*10); } } } if stime >= Starttime or stime < endtime Then{ if MarketPosition == 0 Then Buy("b1",atlimit,entryset-var3*5,1); if MarketPosition == 1 Then{ Buy("b2",atlimit,entryset-var3*10,1); Buy("b3",atlimit,entryset-var3*15,2); Buy("b4",atlimit,entryset-var3*20,3); Buy("b5",atlimit,entryset-var3*25,5); Buy("b6",atlimit,entryset-var3*30,8); if CurrentEntries == 1 Then ExitLong("bx1",AtLimit,(entryset-var3*5)+var3*10); if CurrentEntries == 2 Then ExitLong("bx2",AtLimit,(entryset-var3*10)+var3*10); if CurrentEntries == 3 Then ExitLong("bx3",AtLimit,(entryset-var3*15)+var3*10); if CurrentEntries == 4 Then ExitLong("bx4",AtLimit,(entryset-var3*20)+var3*10); if CurrentEntries == 5 Then ExitLong("bx5",AtLimit,(entryset-var3*25)+var3*10); if CurrentEntries == 6 Then{ ExitLong("bx6",AtLimit,(entryset-var3*30)+var3*10); ExitLong("bLoss",AtStop,(entryset-var3*30)-var3*10); } } }