커뮤니티

문의 드립니다.

프로필 이미지
즐겁게
2017-10-18 16:08:49
137
글번호 113470
답변완료
안녕하세요. 진입한 날로부터 특정일이 지난 후 청산하려고 하는 경우 어떻게 코딩을 해야 하는지요? (이 포지션 보유 날짜를 변수로 해서 최적화하고 싶습니다.) 가령, 포지션 보유 날짜 수를 외부변수로 해서, Input : PositionDays (2); 이렇게 기본 값을 2일(이틀)로 한 후, 청산식은 If MarketPosition == 1 and DateToJulian(CurrentDate) == DateToJulian(EntryDate) + PositionDays Then { ExitLong(); } 이런 식으로 하면 될까 싶은데, 확인해 주시면 감사하겠습니다. 가령, RSI를 이용하여 매수진입 하는 경우라고 할 때, Input : Period(10), LPercent(30), PositionDays (2); Var : Value(0); Value = RSI(Period); # 매수진입 If CrossUP(Value, LPercent) Then { Buy("RB"); } # 청산 If MarketPosition == 1 and DateToJulian(CurrentDate) == DateToJulian(EntryDate) + PositionDays Then { ExitLong(); } 이렇게 해 봤는데, 매수만 딱 한 번 이루어지고, 그 이상은 아무 일이 안 생깁니다. 가르침 부탁 드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-10-19 10:15:05

안녕하세요 예스스탁입니다. 1. CurrentDate는 컴퓨터의 날짜입니다. sdate을 이용해야 합니다. 2 작성하신 식은 정확히 2일째만 청산됩니다. 3일째 에서는 청산이 발생하지 않아 2일째가 휴일이면 더이상 신호를 발생하지 못합니다. 진입이후 2일이상 경과하면 청산으로 변경하셔야 합니다. 3 수정한 식입니다. Input : Period(10), LPercent(30), PositionDays (2); Var : Value(0); Value = RSI(Period); # 매수진입 If CrossUP(Value, LPercent) Then { Buy("RB"); } # 청산 If MarketPosition == 1 and DateToJulian(sdate) >= DateToJulian(EntryDate) + PositionDays Then { ExitLong(); } 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 안녕하세요. 진입한 날로부터 특정일이 지난 후 청산하려고 하는 경우 어떻게 코딩을 해야 하는지요? (이 포지션 보유 날짜를 변수로 해서 최적화하고 싶습니다.) 가령, 포지션 보유 날짜 수를 외부변수로 해서, Input : PositionDays (2); 이렇게 기본 값을 2일(이틀)로 한 후, 청산식은 If MarketPosition == 1 and DateToJulian(CurrentDate) == DateToJulian(EntryDate) + PositionDays Then { ExitLong(); } 이런 식으로 하면 될까 싶은데, 확인해 주시면 감사하겠습니다. 가령, RSI를 이용하여 매수진입 하는 경우라고 할 때, Input : Period(10), LPercent(30), PositionDays (2); Var : Value(0); Value = RSI(Period); # 매수진입 If CrossUP(Value, LPercent) Then { Buy("RB"); } # 청산 If MarketPosition == 1 and DateToJulian(CurrentDate) == DateToJulian(EntryDate) + PositionDays Then { ExitLong(); } 이렇게 해 봤는데, 매수만 딱 한 번 이루어지고, 그 이상은 아무 일이 안 생깁니다. 가르침 부탁 드립니다.