커뮤니티
문의 드립니다.
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();
}
이렇게 해 봤는데, 매수만 딱 한 번 이루어지고, 그 이상은 아무 일이 안 생깁니다.
가르침 부탁 드립니다.