커뮤니티

날짜 변경에 따른 내부변수 리셋

프로필 이미지
쭈꾸미제엔장
2015-07-22 09:44:17
130
글번호 88751
답변완료
안녕하세요, 시스템을 작성해서 테스트를 어제 시작하고 있습니다. S&P 500 mini를 거래하려 하고, 한국 시각으로, 9:30pm에 시작해서 새벽3시경에 마치려 합니다. 하루에 딱 한번만 거래를 하려하는데, 아래와 같은 방식으로 시스템을 작성하면, "시스템트레이딩" 메뉴에서 보면 딱 처음에 한번만 거래를 하고, Done을 다시 0으로 날짜가 바뀌면서 리셋하진 않습니다. 질문은 1) 하루에 딱 한번만 거래를 하게 할 수있게 체크하는 내부변수가 있을까요? > 다르게 생각해본건 당일의 PnL이 0 이면 들어가고, 이미 PnL이 있으면 거래 않케 하는 것도 방법같구요. 2) 아니면, 해당 티커의 날짜가 바뀌면 Done 변수를 리셋하는 방법이 있을까요? Var: std20d(0.05), Done(0); std20d = STD(DayClose,20); Done = 0; If MarketPosition == 0 and C >= DayClose[1] + std20d and Done == 0 Then { Buy("Long",AtMarket); Done = 1; } If MarketPosition > 0 then { ExitLong("ExL",AtMarket, Highest(H,BarsSinceEntry+1) - std20d ); } if stime == 0300 then { ExitLong(); Done = 0; }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-07-22 15:49:56

안녕하세요 예스스탁입니다. 1. 예스랭귀지에서 시간표현은 6자리입니다, 0300 --> 030000으로 변경하시면 됩니다. 2 영업일 변경시간에 0으로 초기화하고 작성하셔도 됩니다. Var: std20d(0.05), Done(0); std20d = STD(DayClose,20); if Bdate != Bdate[1] Then Done = 0; If MarketPosition == 0 and C >= DayClose[1] + std20d and Done == 0 Then { Buy("Long",AtMarket); Done = 1; } If MarketPosition > 0 then { ExitLong("ExL",AtMarket, Highest(H,BarsSinceEntry+1) - std20d ); } if stime == 030000 then { ExitLong(); } 즐거운 하루되세요 > 쭈꾸미제엔장 님이 쓴 글입니다. > 제목 : 날짜 변경에 따른 내부변수 리셋 > 안녕하세요, 시스템을 작성해서 테스트를 어제 시작하고 있습니다. S&P 500 mini를 거래하려 하고, 한국 시각으로, 9:30pm에 시작해서 새벽3시경에 마치려 합니다. 하루에 딱 한번만 거래를 하려하는데, 아래와 같은 방식으로 시스템을 작성하면, "시스템트레이딩" 메뉴에서 보면 딱 처음에 한번만 거래를 하고, Done을 다시 0으로 날짜가 바뀌면서 리셋하진 않습니다. 질문은 1) 하루에 딱 한번만 거래를 하게 할 수있게 체크하는 내부변수가 있을까요? > 다르게 생각해본건 당일의 PnL이 0 이면 들어가고, 이미 PnL이 있으면 거래 않케 하는 것도 방법같구요. 2) 아니면, 해당 티커의 날짜가 바뀌면 Done 변수를 리셋하는 방법이 있을까요? Var: std20d(0.05), Done(0); std20d = STD(DayClose,20); Done = 0; If MarketPosition == 0 and C >= DayClose[1] + std20d and Done == 0 Then { Buy("Long",AtMarket); Done = 1; } If MarketPosition > 0 then { ExitLong("ExL",AtMarket, Highest(H,BarsSinceEntry+1) - std20d ); } if stime == 0300 then { ExitLong(); Done = 0; }