커뮤니티

부탁합니다

프로필 이미지
샐리의법칙
2013-11-28 16:43:43
178
글번호 69931
답변완료
안녕하세요 컴맹수중이라부탁드리니 하이투자증권에서 시스템트레이딩에서 사용 할수 있도록 부탁드립니다 (옵션입니다)
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-11-29 14:04:57

안녕하세요 예스스탁입니다. 문의하신 내용은 일부는 구현에 문제가 되는 부분이 있습니다. 우선 시스템은 차트의 주종목에 대해 주문이 나가고 주종목의 주기가 기준이 됩니다. 문의하신 내용에서는 3개(3분,5분,10분)의 주기를 사용하시는데 진입을 10분에 해야 하므로 10분봉이 기준이 되어 작성이 되어야 합니다. 즉 주종목은 10분이 되어야 하고 3분과 5분은 참조데이터로 가야 합니다. 다른 주기인 참조데이터에서는 조건이 만족된다고 주종목에 바로 신호가 발생하는것이 아니고 주종목인 10분봉 완성시에 그때까지 완성된 data2(5분),data3(3분)에서 조건만족하고 있으면 그때 신호가 발생하게 됩니다. 즉 참조데이터 3분봉이 조건에 만족해서 바로 나오는게 아니고 10분봉이 완성될때 만족하고 있으면 발생하게 됩니다. 첨부된 그림과 같이 주종목은 10분, 5분과 3분은 참조데이터로 추가해야 합니다. 주종목은 차트왼쪽 상단의 종목선택버튼 중 왼쪽을 클릭하시면 선택하실 수 있고 참조데이터는 오른쪽 버튼을 누르시면 선택해 추가할수 있습니다. 참조데이터는 차트에 추가하는 순서에 따라 data2,data3의 번호가 부여되므로 5분주기로 먼저 추가하신 후에 3분을 추가하시면 됩니다. 문의하신 내용은 아래내용으로 뿐이 구현이 안되며 아래내용이 만지 않으시면 해당 내용 예스랭귀지로 가능하지 않습니다. input : len1(5),len2(7),len3(40),len4(9),len5(13); var : ii(0,data1); var : DC1(0,data1),DC2(0,data2),DC3(0,data3); var : Gma1(0,data1),Gma2(0,data2),Gma3(0,data3); var : Tema1(0,data1),Tema2(0,data2),Tema3(0,data3); var : dis1(0,data1),dis2(0,data2),dis3(0,data3); var : d1trix9(0,data1),d2trix9(0,data2),d3trix9(0,data3); var : d1trix13(0,data1),d2trix13(0,data2),d3trix13(0,data3); var : idx1(0,data1),idx2(0,data2),idx3(0,data3); DC1 = data1(c); DC2 = data2(c); DC3 = data3(c); Gma1 = 0; for ii = 0 to len1-1 begin Gma1 = Gma1 + log(DC1[ii]); end; Gma1 = 2.71828182845904^(Gma1/len1); Gma2 = 0; for ii = 0 to len1-1 begin Gma2 = Gma2 + log(DC2[ii]); end; Gma2 = 2.71828182845904^(Gma2/len1); Gma3 = 0; for ii = 0 to len1-1 begin Gma3 = Gma3 + log(DC3[ii]); end; Gma3 = 2.71828182845904^(Gma3/len1); TEMA1 = data1((3 * Ema(c,len2)) - (3 * Ema(Ema(c,len2),len2)) + (Ema(Ema(Ema(c,len2),len2),len2))); TEMA2 = data2((3 * Ema(c,len2)) - (3 * Ema(Ema(c,len2),len2)) + (Ema(Ema(Ema(c,len2),len2),len2))); TEMA3 = data3((3 * Ema(c,len2)) - (3 * Ema(Ema(c,len2),len2)) + (Ema(Ema(Ema(c,len2),len2),len2))); dis1 = data1(Disparity(len3)); dis2 = data2(Disparity(len3)); dis3 = data3(Disparity(len3)); D1trix9 = data1(trix(len4)); D2trix9 = data2(trix(len4)); D3trix9 = data3(trix(len4)); D1trix13 = data1(trix(len5)); D2trix13 = data2(trix(len5)); D3trix13 = data3(trix(len5)); if data3(crossup(Gma1,Tema1) and dis1 >= 101 and D1trix9 >= 0 and d1trix9 >= 0) Then idx3 = data3(index); if data2(crossup(Gma1,Tema1) and dis1 >= 101 and D1trix9 >= 0 and d1trix9 >= 0) Then idx2 = data2(index); if data1(crossup(Gma1,Tema1) and dis1 >= 101 and D1trix9 >= 0 and d1trix9 >= 0) Then{ idx1 = index; if data3(index >= idx3 and index <= idx3+5) And data3(index >= idx3 and index <= idx3+3) Then buy(); } if MarketPosition == 1 then{ if CurrentContracts == MaxContracts and dis3 < dis3[3] and d3trix9 < d3trix9[3] Then ExitLong("bx1",OnClose,def,"",int(MaxContracts*0.5),1); if CurrentContracts < MaxContracts and dis3 < dis3[3] and d3trix13 < d3trix13[3] Then ExitLong("bx2"); } SetStopLoss(7,PointStop); var : va2(0),va3(0); va2 = data1(date - int(date/100)*100); va3 = data1(DayOfWeek(date)); if va2 >= 8 and va2 <= 14 and va3 == 4 then SetStopEndofday(144300); Else SetStopEndofday(150300); 즐거운 하루되세요 > 샐리의법칙 님이 쓴 글입니다. > 제목 : 부탁합니다 > 안녕하세요 컴맹수중이라부탁드리니 하이투자증권에서 시스템트레이딩에서 사용 할수 있도록 부탁드립니다 (옵션입니다)