커뮤니티
단 한 번 진입 (Entry?)
2012-12-03 12:46:54
229
글번호 56991
23:30~6:30까지 시스템트레이딩하는 경우에 대해 지난 금요일 아래와 같이 식을 만들어 주셨습니다. '단 한 번' 진입하는 경우 식이었죠 (시스템 설정에 강제매매 설정).
if stime == 233000 or (stime > 233000 and stime[1] < 233000) then
{
Condition1 = false;
Condition2 = false;
}
if stime >= 230000 or stime <= 063000 Then{
if MarketPosition == 1 and MarketPosition[1] != 1 then
Condition1 = True;
if MarketPosition == -1 and MarketPosition[1] != -1 then
Condition2 = true;
if 매수조건 and Condition1 == False then
sell();
If 매도조건 and Condition2 == False then
buy();
}
질문. 제가 보기에는 아무리 봐도 '단 한 번' 진입이 아닌 듯 합니다. (논의를 단순화하기 위해 매수진입만 있다고 가정하면 아래 식이 됩니다):
if stime == 233000 or (stime > 233000 and stime[1] < 233000) then
Condition1 = false;
if stime >= 230000 or stime <= 063000 Then{
if MarketPosition == 1 and MarketPosition[1] != 1 then ---------- (2)
Condition1 = True;
if 매수조건 and Condition1 == False then
sell();
}
제가 원하는 23:00~06:30 시간 중 '단 한 번' 매수진입이 되려면, 고려 시간 동안 현재봉 포함 이전 봉의 포지션이 모두 0인 경우에만 진입이 가능한 경우입니다. 단 한 봉에서의 포지션도 1이 된 적 있으면 더 이상 매수진입이 발생하면 안 되는 경우입니다.
따라서 식(2)가 최소한 하나의 MarektPosition[x] == 1 (x = 0, 1, ...... , N; N은 23:30에 해당)이라는 내용이 되어야 하는 경우를 원합니다. (매뉴얼 살펴보니 Entry함수가 있던데, 이걸 이용하면 되는 건지요?)
답변 부탁드립니다. 수고하세요.
답변 1
예스스탁 예스스탁 답변
2012-12-03 15:28:28
안녕하세요
예스스탁입니다.
죄송합니다. 이전답변에 변수가 반대로 되어 있었습니다.
아래식 적용해 보시면
해당 시간내에 매수진입와 매도진입이
한번씩만 발생하시는 것을 보실 수 있습니다.
진입은 20이평 상승시 매수, 20이평 하락시 매도로 작성했습니다.
if stime == 233000 or (stime > 233000 and stime[1] < 233000) then
{
Condition1 = false;
Condition2 = false;
}
if stime >= 230000 or stime <= 063000 Then{
if MarketPosition == 1 and MarketPosition[1] != 1 then
Condition1 = True;
if MarketPosition == -1 and MarketPosition[1] != -1 then
Condition2 = true;
If CrossUp(c,ma(c,20)) and Condition1 == False then
buy();
if crossdown(c,ma(c,20)) and Condition2 == False then
sell();
}
기존의 for문으로 이전 포지션의 값을 가져와
당일 진입횟수를 카운트 하는 식은
0시~24시를 기준으로 하루를 판단하므로
말씀하신 23:30~6:30까지의 시간대로 사용할수가 없습니다.
위와 같이 지정하신 시작시간에 초기화를 하는 내용으로
만들어야 합니다.
즐거운 하루되세요
> ST 님이 쓴 글입니다.
> 제목 : 단 한 번 진입 (Entry?)
> 23:30~6:30까지 시스템트레이딩하는 경우에 대해 지난 금요일 아래와 같이 식을 만들어 주셨습니다. '단 한 번' 진입하는 경우 식이었죠 (시스템 설정에 강제매매 설정).
if stime == 233000 or (stime > 233000 and stime[1] < 233000) then
{
Condition1 = false;
Condition2 = false;
}
if stime >= 230000 or stime <= 063000 Then{
if MarketPosition == 1 and MarketPosition[1] != 1 then
Condition1 = True;
if MarketPosition == -1 and MarketPosition[1] != -1 then
Condition2 = true;
if 매수조건 and Condition1 == False then
sell();
If 매도조건 and Condition2 == False then
buy();
}
질문. 제가 보기에는 아무리 봐도 '단 한 번' 진입이 아닌 듯 합니다. (논의를 단순화하기 위해 매수진입만 있다고 가정하면 아래 식이 됩니다):
if stime == 233000 or (stime > 233000 and stime[1] < 233000) then
Condition1 = false;
if stime >= 230000 or stime <= 063000 Then{
if MarketPosition == 1 and MarketPosition[1] != 1 then ---------- (2)
Condition1 = True;
if 매수조건 and Condition1 == False then
sell();
}
제가 원하는 23:00~06:30 시간 중 '단 한 번' 매수진입이 되려면, 고려 시간 동안 현재봉 포함 이전 봉의 포지션이 모두 0인 경우에만 진입이 가능한 경우입니다. 단 한 봉에서의 포지션도 1이 된 적 있으면 더 이상 매수진입이 발생하면 안 되는 경우입니다.
따라서 식(2)가 최소한 하나의 MarektPosition[x] == 1 (x = 0, 1, ...... , N; N은 23:30에 해당)이라는 내용이 되어야 하는 경우를 원합니다. (매뉴얼 살펴보니 Entry함수가 있던데, 이걸 이용하면 되는 건지요?)
답변 부탁드립니다. 수고하세요.