커뮤니티

시스템식 문의

프로필 이미지
회원
2013-04-17 18:53:21
156
글번호 62187
답변완료
시스템식 질문드립니다. 예를들어 특정기간(ex:일주일)에 x이평을 돌파하면 매수한다는 시스템을 작성하고자 할때, 실시간으로 변하는 시장상황을 반영하고자하는게 목표인데요. 시스템자체에서 10이평부터 50이평까지 5이평단위로 자체적으로 과거 특정기간(ex:일주일)만큼 검사를 실시해 이로부터 선택된 이평을 거래에 사용하는 시스템을 작성하고 싶습니다. 매수청산도 마찬가지 논리로 이평을 검사한다음 과거 특정기간에서 가장 잘 설명하는 이평으로 매수청산을 하려합니다. 이러한 코딩을 예시로 주신다면 감사하겠습니다. 언제나 빠른 답변 감사하며 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-04-18 13:01:12

안녕하세요 예스스탁입니다. 문의하신 내용은 각 이평을 조합해 경우의 수별로 작성해야 합니다. 작성하기에 5개이평은 조합수가 많으므로 3개 이평만으로 올려드립니다. 10,20,30으로만 작성해 드립니다. 진입10 - 청산10, 진입10 - 청산20, 진입10 - 청산30, 진입20 - 청산10, 진입20 - 청산20, 진입20 - 청산30, 진입30 - 청산10, 진입30 - 청산20, 진입30 - 청산30, var : ma1(0),ma2(0),ma3(0),ma4(0),ma5(0),cnt(0),AA(0),BB(0),maxPL(0),ii(0); var : cond1(false),cond2(false),cond3(false),cond4(false),cond5(false); var : cond6(false),cond7(false),cond8(false),cond9(false); var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0),v7(0),v8(0),v9(0),v10(0); var : entryma(0),exitma(0); array : case[10,10](0),sumPL[10](0); ma1 = ma(c,10); ma2 = ma(c,20); ma3 = ma(c,30); ma4 = ma(c,40); ma5 = ma(c,50); if date != date[1] Then{ for AA = 1 to 9{ case[AA,0] = 0; for BB = 1 to 9{ case[AA,BB] = case[AA,BB-1][1]; } } } #진입10이평-청산10이평 if Cond1 == false and crossup(c,ma1) Then{ Cond1 = true; v1 = c; } if Cond1 == true and CrossDown(c,ma1) Then{ case[1,0] = case[1,0]+(C-v1); Cond1 = false; } #진입10이평-청산20이평 if Cond2 == false and crossup(c,ma1) Then{ Cond2 = true; v2 = c; } if Cond2 == true and CrossDown(c,ma2) Then{ case[2,0] = case[2,0]+(C-v2); Cond2 = false; } #진입10이평-청산30이평 if Cond3 == false and crossup(c,ma1) Then{ Cond3 = true; v3 = c; } if Cond3 == true and CrossDown(c,ma3) Then{ case[3,0] = case[3,0]+(C-v3); Cond3 = false; } #진입20이평-청산10이평 if Cond4 == false and crossup(c,ma2) Then{ Cond4 = true; v4 = c; } if Cond4 == true and CrossDown(c,ma1) Then{ case[4,0] = case[4,0]+(C-v4); Cond4 = false; } #진입20이평-청산20이평 if Cond5 == false and crossup(c,ma2) Then{ Cond5 = true; v5 = c; } if Cond5 == true and CrossDown(c,ma2) Then{ case[5,0] = case[5,0]+(C-v5); Cond5 = false; } #진입20이평-청산30이평 if Cond6 == false and crossup(c,ma2) Then{ Cond6 = true; v6 = c; } if Cond6 == true and CrossDown(c,ma3) Then{ case[6,0] = case[6,0]+(C-v6); Cond6 = false; } #진입30이평-청산10이평 if Cond7 == false and crossup(c,ma3) Then{ Cond7 = true; v7 = c; } if Cond7 == true and CrossDown(c,ma1) Then{ case[7,0] = case[7,0]+(C-v7); Cond7 = false; } #진입30이평-청산20이평 if Cond8 == false and crossup(c,ma3) Then{ Cond8 = true; v8 = c; } if Cond8 == true and CrossDown(c,ma1) Then{ case[8,0] = case[8,0]+(C-v8); Cond8 = false; } #진입30이평-청산10이평 if Cond9 == false and crossup(c,ma3) Then{ Cond9 = true; v9 = c; } if Cond9 == true and CrossDown(c,ma1) Then{ case[9,0] = case[9,0]+(C-v9); Cond9 = false; } #각 case별 직전 5일간 수익합산 for AA = 1 to 9{ sumPL[AA] = 0; for BB = 1 to 5{ sumPL[AA] = sumPL[AA]+case[AA,BB]; } } maxPL = SumPL[1]; ii = 1; for cnt = 1 to 9{ if SumPL[cnt] > maxPL Then{ maxPL = SumPL[cnt]; ii = cnt; } } if ii == 1 Then{ entryma = ma1; exitma = ma1; } if ii == 2 Then{ entryma = ma1; exitma = ma2; } if ii == 3 Then{ entryma = ma1; exitma = ma3; } if ii == 4 Then{ entryma = ma2; exitma = ma1; } if ii == 5 Then{ entryma = ma2; exitma = ma2; } if ii == 6 Then{ entryma = ma2; exitma = ma3; } if ii == 7 Then{ entryma = ma3; exitma = ma1; } if ii == 8 Then{ entryma = ma3; exitma = ma2; } if ii == 9 Then{ entryma = ma3; exitma = ma3; } plot1(entryma); plot2(exitma); 즐거운 하루되세요 > HI_yjam49 님이 쓴 글입니다. > 제목 : 시스템식 문의 > 시스템식 질문드립니다. 예를들어 특정기간(ex:일주일)에 x이평을 돌파하면 매수한다는 시스템을 작성하고자 할때, 실시간으로 변하는 시장상황을 반영하고자하는게 목표인데요. 시스템자체에서 10이평부터 50이평까지 5이평단위로 자체적으로 과거 특정기간(ex:일주일)만큼 검사를 실시해 이로부터 선택된 이평을 거래에 사용하는 시스템을 작성하고 싶습니다. 매수청산도 마찬가지 논리로 이평을 검사한다음 과거 특정기간에서 가장 잘 설명하는 이평으로 매수청산을 하려합니다. 이러한 코딩을 예시로 주신다면 감사하겠습니다. 언제나 빠른 답변 감사하며 부탁드립니다.