커뮤니티
진입 제한 조건
2016-03-15 01:39:39
152
글번호 96261
- 안녕하세요 ? 매번 감사드립니다.
해외선물입니다(us 달러 인덱스). 장시작/종료(월요일) 07:30 ~ 다음날 06:10,
장시작/종료(화~ 금요일) 09:30 ~ 다음날06:10 입니다.
제가 의도하고자 하는 것은 특정시간대 진입금지 시켜서 다음날 장종료 06:10분까지 진입
금지 할려고 합니다.
(예를 들면) 미국의 생산자 물가지수 발표가 23:30에 있다고 가정하면,
장시작 07:30(혹은09:30) 부터 ~ 22:30까지만 진입시키고
[문의] 23:30부터 다음날 장종료(06:10)까지 진입금지를 할려고 합니다.
==>문제은 진입금지 시간대를 지정해보았는데 이상한 결과가 나옵니다.(테스트결과캡쳐참조)
앞전에 질문을 드렸던 내용입니다(질문번호 : 46729)
.진입금지 시간대 시스템식은 운영자님이 답변하신데로
시스템식 "(stime >= 100000 or stime < ntime)" 참고로 작성해보았고
ntime를 입력후 테스트를 한 결과 4가지중 1개만 성공이고 나머진 실패입니다.
===> 성공한것은 첨부파일 캡쳐10~12 입니다.
[위 그림 참조] #그림4 ~ 그림#12 ( 첨부파일 갯수 제한 때문에 나누어서 첨부시켰습니다.)
[테스트 방법] 기존 매도(진입명 : 매도"3") 진입 시간(4개) 가지고 그 시간별로
진입금지 시간을 ntime 입력후 테스트..한것입니다.
왜그런지요? 참 이상합니다. 몇번해도 도저히 답이 안나옵니다. 부탁드리겠습니다
수고하세요 (그리고 참고하시라고 매도3의 시스템식 기술했습니다.)
시스템식입니다
Inputs: N(2),start(093000),ntime(043000),StopTick1(0.10),Len1(12), Line1(30), Line2(26),Line3(9), StopTick(0.3), Period1(3),Period2(3);
//여기에서 start는 장시작시간입력입니다.
vars: SPDM(0), SMDM(0), STR(0), DIP(0), DIM(0), DX(0), mADX(0),v1(0),v2(0),v3(0),v4(0),count(0);
SPDM = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Len1);
SMDM= ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Len1);
STR = ema(TrueRange,Len1);
DIP = SPDM/STR*100;
DIM = SMDM/STR*100;
DX = abs(DIP-DIM)/abs(DIP+DIM)*100;
mADX = ema(DX,Len1);
v1 = StochasticsK(Len1,Period1);
v2 = StochasticsD(Len1,Period1,Period2);
v3 = MACD(Len1, Line2);
v4 = ema(v3, Line3);
var6 = ma(c,5);//5이평
var5 = ma(c,20);//20이평
var3 = ma(c,50);//50이평
var4 = ma(c,200);//200이평
//=====거래횟수 제한로직 ==================
if bdate != Bdate[1] Then
var1 = TotalTrades;
if MarketPosition == 0 Then
count = TotalTrades-var1;
Else
count = (TotalTrades-var1)+1;
if madx[1]<30 and dim[1]<30 and dim>30 and C[1]<O[1] and dim[1]<60 and h[2] > c[1] and c<o and abs(o[1]-c[1]) < 0.4 and v1[1]<v2[1] and v1[1] >v1 and v1[1]>20 and crossup(DIM[1],DIP[1]) and CrossUp(DIM[1],mADX[1]) and v1<v2 and (stime >= start or stime< ntime) and count < N and MarketPosition == 0 Then
{
Sell("매도3");
}
.
if marketposition == -1 Then
{
if IsEntryName("매도3") and v1>v1[1] then ExitShort("청산5");
}
- 1. 96781_2222.png (0.07 MB)
- 2. 3333.png (0.05 MB)
- 3. 11111.png (0.07 MB)
답변 1
예스스탁 예스스탁 답변
2016-03-15 09:55:03
안녕하세요
예스스탁입니다.
"매도3" 수식의 시간제한 조건을 보시면
(stime >= start or stime< ntime) 와 같이 되어 있습니다.
현재 시간이 start보다 크거나 또는 봉의시간이 ntime보다 작다로
시간 조건이 or로 연결되어 있습니다.
위 표현은 시작시간보다 끝시간이 작을때 사용하는 표현입니다.
(09시부터 다음날 04시까지)
위 식에서 ntime이 start타임보다 크면 전체시간에서 조건이 만족합니다.
start가 ntime보다 크면 or
stsart가 ntime보다 작으면 and
로 조건을 연결해야 합니다.
시간 제한 수식을 다른 방법으로 변경해 드립니다.
Inputs: N(2),start(093000),ntime(043000),StopTick1(0.10),Len1(12), Line1(30), Line2(26),Line3(9), StopTick(0.3), Period1(3),Period2(3);
//여기에서 start는 장시작시간입력입니다.
vars: SPDM(0), SMDM(0), STR(0), DIP(0), DIM(0), DX(0), mADX(0),v1(0),v2(0),v3(0),v4(0),count(0);
var : TimeCond(false);
SPDM = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Len1);
SMDM= ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Len1);
STR = ema(TrueRange,Len1);
DIP = SPDM/STR*100;
DIM = SMDM/STR*100;
DX = abs(DIP-DIM)/abs(DIP+DIM)*100;
mADX = ema(DX,Len1);
v1 = StochasticsK(Len1,Period1);
v2 = StochasticsD(Len1,Period1,Period2);
v3 = MACD(Len1, Line2);
v4 = ema(v3, Line3);
var6 = ma(c,5);//5이평
var5 = ma(c,20);//20이평
var3 = ma(c,50);//50이평
var4 = ma(c,200);//200이평
//=====거래횟수 제한로직 ==================
if bdate != Bdate[1] Then
var1 = TotalTrades;
if MarketPosition == 0 Then
count = TotalTrades-var1;
Else
count = (TotalTrades-var1)+1;
if stime == start or (stime > start and stime[1] < start) Then
TimeCond = True;
if stime == ntime or (stime > ntime and stime[1] < ntime) Then
TimeCond = false;
if madx[1]<30 and dim[1]<30 and dim>30 and C[1]<O[1] and dim[1]<60 and h[2] > c[1] and c<o and
abs(o[1]-c[1]) < 0.4 and v1[1]<v2[1] and v1[1] >v1 and v1[1]>20 and crossup(DIM[1],DIP[1]) and
CrossUp(DIM[1],mADX[1]) and v1<v2 and
TimeCond == true and count < N and MarketPosition == 0 Then
{
Sell("매도3");
}
if marketposition == -1 Then
{
if IsEntryName("매도3") and v1>v1[1] then ExitShort("청산5");
}
즐거운 하루되세요
> 수급저격수 님이 쓴 글입니다.
> 제목 : 진입 제한 조건
> - 안녕하세요 ? 매번 감사드립니다.
해외선물입니다(us 달러 인덱스). 장시작/종료(월요일) 07:30 ~ 다음날 06:10,
장시작/종료(화~ 금요일) 09:30 ~ 다음날06:10 입니다.
제가 의도하고자 하는 것은 특정시간대 진입금지 시켜서 다음날 장종료 06:10분까지 진입
금지 할려고 합니다.
(예를 들면) 미국의 생산자 물가지수 발표가 23:30에 있다고 가정하면,
장시작 07:30(혹은09:30) 부터 ~ 22:30까지만 진입시키고
[문의] 23:30부터 다음날 장종료(06:10)까지 진입금지를 할려고 합니다.
==>문제은 진입금지 시간대를 지정해보았는데 이상한 결과가 나옵니다.(테스트결과캡쳐참조)
앞전에 질문을 드렸던 내용입니다(질문번호 : 46729)
.진입금지 시간대 시스템식은 운영자님이 답변하신데로
시스템식 "(stime >= 100000 or stime < ntime)" 참고로 작성해보았고
ntime를 입력후 테스트를 한 결과 4가지중 1개만 성공이고 나머진 실패입니다.
===> 성공한것은 첨부파일 캡쳐10~12 입니다.
[위 그림 참조] #그림4 ~ 그림#12 ( 첨부파일 갯수 제한 때문에 나누어서 첨부시켰습니다.)
[테스트 방법] 기존 매도(진입명 : 매도"3") 진입 시간(4개) 가지고 그 시간별로
진입금지 시간을 ntime 입력후 테스트..한것입니다.
왜그런지요? 참 이상합니다. 몇번해도 도저히 답이 안나옵니다. 부탁드리겠습니다
수고하세요 (그리고 참고하시라고 매도3의 시스템식 기술했습니다.)
시스템식입니다
Inputs: N(2),start(093000),ntime(043000),StopTick1(0.10),Len1(12), Line1(30), Line2(26),Line3(9), StopTick(0.3), Period1(3),Period2(3);
//여기에서 start는 장시작시간입력입니다.
vars: SPDM(0), SMDM(0), STR(0), DIP(0), DIM(0), DX(0), mADX(0),v1(0),v2(0),v3(0),v4(0),count(0);
SPDM = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Len1);
SMDM= ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Len1);
STR = ema(TrueRange,Len1);
DIP = SPDM/STR*100;
DIM = SMDM/STR*100;
DX = abs(DIP-DIM)/abs(DIP+DIM)*100;
mADX = ema(DX,Len1);
v1 = StochasticsK(Len1,Period1);
v2 = StochasticsD(Len1,Period1,Period2);
v3 = MACD(Len1, Line2);
v4 = ema(v3, Line3);
var6 = ma(c,5);//5이평
var5 = ma(c,20);//20이평
var3 = ma(c,50);//50이평
var4 = ma(c,200);//200이평
//=====거래횟수 제한로직 ==================
if bdate != Bdate[1] Then
var1 = TotalTrades;
if MarketPosition == 0 Then
count = TotalTrades-var1;
Else
count = (TotalTrades-var1)+1;
if madx[1]<30 and dim[1]<30 and dim>30 and C[1]<O[1] and dim[1]<60 and h[2] > c[1] and c<o and abs(o[1]-c[1]) < 0.4 and v1[1]<v2[1] and v1[1] >v1 and v1[1]>20 and crossup(DIM[1],DIP[1]) and CrossUp(DIM[1],mADX[1]) and v1<v2 and (stime >= start or stime< ntime) and count < N and MarketPosition == 0 Then
{
Sell("매도3");
}
.
if marketposition == -1 Then
{
if IsEntryName("매도3") and v1>v1[1] then ExitShort("청산5");
}
다음글
이전글