커뮤니티
일일매매횟수 오류 검증
2017-06-15 21:24:04
151
글번호 110472
항상 감사드립니다
아래매매시스템식은
1.당일 매매횟수 3회
2.당일 첫신호는 B1,S1으로 시작
3.전일마지막신호와 연계되어 동일방향 재진입금지
로 구현하는 시스템식입니다
시스템을 돌려보면 당일첫신호가 B1,S1이 아닌 B2,S2가 발생하곤 합니다.
전체적으로 검증부탁드립니다
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 #
var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지#
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
Tcond = true;
S1 = TotalTrades;
T1 = 0;
count1 = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
ExitLong("당일매수청산");
ExitShort("당일매도청산");
}
if MarketPosition != 0 Then
Entrycnt = TotalTrades-S1;
Else
Entrycnt = TotalTrades-S1+1;
#####################################################
if Tcond == true Then{
if count1 == 0 Then{ #당일 첫번째 신호 #
if uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and
MarketPosition == 0 and MarketPosition(1) != 1 Then
buy("b1");
if uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and
MarketPosition == 0 and MarketPosition(1) != -1 Then
sell("s1");
}
#매수조건이면 T1는 1, 카운트 1증가
if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then {
T1 = 1;
count1 = count1+1;
#카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt <=당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지#
BUY("B2_stok80");
}
#매도조건이면 T1는 -1, 카운트 1증가
if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{
T1 = -1;
count1 = count1+1;
#카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt <= 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지#
sell("S2_stok80");
}
}
답변 1
예스스탁 예스스탁 답변
2017-06-16 11:45:46
안녕하세요
예스스탁입니다.
1
당일 진입 카운트 계산이 잘못되 있어 수정했습니다
if MarketPosition == 0 Then
Entrycnt = TotalTrades-S1;
Else
Entrycnt = TotalTrades-S1+1;
2
사용하시는 수식에서 당일 진입횟수 카운트하는 변수는 Entrycnt입니다.
count1 변수가 아닙니다.
그러므로 당일 첫진입은 Entrycnt == 0
당일 두번째 진입부터는 Eentrycnt >= 1 and entrycnt < 당일최대진입횟수
로 조건이 지정되어 있으면 됩니다.
3
동일방향재진입을 금지하는 부분은 모든식에 조건으로 추가되 있어
따로 체크할 부분은 없습니다.
4
수정한 식입니다.
input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 #
var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지#
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
Tcond = true;
S1 = TotalTrades;
T1 = 0;
count1 = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
ExitLong("당일매수청산");
ExitShort("당일매도청산");
}
if MarketPosition == 0 Then
Entrycnt = TotalTrades-S1;
Else
Entrycnt = TotalTrades-S1+1;
#####################################################
if Tcond == true Then{
if Entrycnt == 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and
MarketPosition == 0 and MarketPosition(1) != 1 Then
buy("b1");
if Entrycnt == 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and
MarketPosition == 0 and MarketPosition(1) != -1 Then
sell("s1");
#매수조건이면 T1는 1, 카운트 1증가
if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then {
T1 = 1;
count1 = count1+1;
#카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지#
BUY("B2_stok80");
}
#매도조건이면 T1는 -1, 카운트 1증가
if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{
T1 = -1;
count1 = count1+1;
#카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt < 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지#
sell("S2_stok80");
}
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 일일매매횟수 오류 검증
> 항상 감사드립니다
아래매매시스템식은
1.당일 매매횟수 3회
2.당일 첫신호는 B1,S1으로 시작
3.전일마지막신호와 연계되어 동일방향 재진입금지
로 구현하는 시스템식입니다
시스템을 돌려보면 당일첫신호가 B1,S1이 아닌 B2,S2가 발생하곤 합니다.
전체적으로 검증부탁드립니다
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
input : 시작시간(170000), 종료시간(150000),당일최대진입횟수(3); # 현지시간_뉴욕 17:00 장시작/ 15시 장종료 #
var : entrycnt(0),S1(0),T1(0),count1(0),Tcond(false); # 전일 마지막신호연계하여 동일방향 재진입금지#
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then {
Tcond = true;
S1 = TotalTrades;
T1 = 0;
count1 = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
ExitLong("당일매수청산");
ExitShort("당일매도청산");
}
if MarketPosition != 0 Then
Entrycnt = TotalTrades-S1;
Else
Entrycnt = TotalTrades-S1+1;
#####################################################
if Tcond == true Then{
if count1 == 0 Then{ #당일 첫번째 신호 #
if uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 and
MarketPosition == 0 and MarketPosition(1) != 1 Then
buy("b1");
if uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 and
MarketPosition == 0 and MarketPosition(1) != -1 Then
sell("s1");
}
#매수조건이면 T1는 1, 카운트 1증가
if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then {
T1 = 1;
count1 = count1+1;
#카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt <=당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != 1) or MarketPosition == -1) Then #동일방향 재진입금지#
BUY("B2_stok80");
}
#매도조건이면 T1는 -1, 카운트 1증가
if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{
T1 = -1;
count1 = count1+1;
#카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입
if count1 <= 4 and entrycnt >= 1 and entrycnt <= 당일최대진입횟수 and ((MarketPosition == 0 and MarketPosition(1) != -1) or MarketPosition == 1) then #동일방향 재진입금지#
sell("S2_stok80");
}
}
다음글
이전글