커뮤니티

질문드립니다

프로필 이미지
맘속의행복
2020-11-22 11:52:38
632
글번호 144093
답변완료
안녕하세요 전에 3분봉 챠트에 30분봉의 20이평선을 표시하는 함수식을 질문드린 적이 있었고, 답변에 주신 수식은 아래와 같습니다. input : ntime(30),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0); Array : C1[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; Plot1(mav1); } } 그런데, 이 식을 시스템식에 이것을 지표로 사용하려 했으나, 무슨 이유인지 수치가 달라집니다. 챠트상에 띄운 해당 이평선과 시스템내에서 지표로 산출되는 수치가 꽤 많이 달라지는 문제를 겪고 있습니다. 해결할 수 있도록 도움 요청드립니다. 감사합니다
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2020-11-23 11:34:49

안녕하세요 예스스탁입니다. 수식의 계산은 봉의 데이타로 계산하므로 수식의 종류별로 다를수 없습니다. 해당 지표를 아래와 같이 시스템식에서 사용하고 messagelong로 검증도 해보았지만 달라지는 현상이 없습니다. input : ntime(30),P(20); var : S1(0,Data1),D1(0,Data1),TM(0,Data1),TF(0,Data1),cnt(0,Data1); var : sum1(0,Data1),mav1(0,Data1); Array : C1[100](0,Data1); if data1(Bdate != Bdate[1]) Then { S1 = data1(TimeToMinutes(stime)); D1 = data1(sdate); } if D1 > 0 then { if data1(sdate == D1) Then TM = data1(TimeToMinutes(stime))-S1; Else TM = data1(TimeToMinutes(stime))+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = data1(C); if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; } } if CrossUp(c,mav1) Then Buy(); if CrossDown(c,mav1) Then Sell(); MessageLog("%.2f",mav1); 계산식을 다른수식에 사용될 경우 아래 내용을 살펴보시기 바랍니다. 1 기존에 다른 수식에서 사용하는 변수들과 겹치는 부분이 없는지 확인하시기 바랍니다. 겹치는 변수가 있으면 사용자분이 적절히 다른이름으로 변경해 주셔야 합니다. 2 다른수식에 참조데이타(data2~data99)가 사용될 경우 아래와 같이 각 변수가 어떤 데이타를 기준으로 값이 저장되고 이전값을 불러오는지 변수선언등에 데이타번호를 추가하셔야 합니다. input : ntime(30),P(20); var : S1(0,Data1),D1(0,Data1),TM(0,Data1),TF(0,Data1),cnt(0,Data1); var : sum1(0,Data1),mav1(0,Data1); Array : C1[100](0,Data1); if data1(Bdate != Bdate[1]) Then { S1 = data1(TimeToMinutes(stime)); D1 = data1(sdate); } if D1 > 0 then { if data1(sdate == D1) Then TM = data1(TimeToMinutes(stime))-S1; Else TM = data1(TimeToMinutes(stime))+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = data1(C); if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; Plot1(mav1); } } 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 질문드립니다 > 안녕하세요 전에 3분봉 챠트에 30분봉의 20이평선을 표시하는 함수식을 질문드린 적이 있었고, 답변에 주신 수식은 아래와 같습니다. input : ntime(30),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0); Array : C1[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; Plot1(mav1); } } 그런데, 이 식을 시스템식에 이것을 지표로 사용하려 했으나, 무슨 이유인지 수치가 달라집니다. 챠트상에 띄운 해당 이평선과 시스템내에서 지표로 산출되는 수치가 꽤 많이 달라지는 문제를 겪고 있습니다. 해결할 수 있도록 도움 요청드립니다. 감사합니다
프로필 이미지

맘속의행복

2020-11-23 22:59:24

감사합니다. 알려주신대로 하니깐 잘 됩니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 질문드립니다 > 안녕하세요 예스스탁입니다. 수식의 계산은 봉의 데이타로 계산하므로 수식의 종류별로 다를수 없습니다. 해당 지표를 아래와 같이 시스템식에서 사용하고 messagelong로 검증도 해보았지만 달라지는 현상이 없습니다. input : ntime(30),P(20); var : S1(0,Data1),D1(0,Data1),TM(0,Data1),TF(0,Data1),cnt(0,Data1); var : sum1(0,Data1),mav1(0,Data1); Array : C1[100](0,Data1); if data1(Bdate != Bdate[1]) Then { S1 = data1(TimeToMinutes(stime)); D1 = data1(sdate); } if D1 > 0 then { if data1(sdate == D1) Then TM = data1(TimeToMinutes(stime))-S1; Else TM = data1(TimeToMinutes(stime))+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = data1(C); if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; } } if CrossUp(c,mav1) Then Buy(); if CrossDown(c,mav1) Then Sell(); MessageLog("%.2f",mav1); 계산식을 다른수식에 사용될 경우 아래 내용을 살펴보시기 바랍니다. 1 기존에 다른 수식에서 사용하는 변수들과 겹치는 부분이 없는지 확인하시기 바랍니다. 겹치는 변수가 있으면 사용자분이 적절히 다른이름으로 변경해 주셔야 합니다. 2 다른수식에 참조데이타(data2~data99)가 사용될 경우 아래와 같이 각 변수가 어떤 데이타를 기준으로 값이 저장되고 이전값을 불러오는지 변수선언등에 데이타번호를 추가하셔야 합니다. input : ntime(30),P(20); var : S1(0,Data1),D1(0,Data1),TM(0,Data1),TF(0,Data1),cnt(0,Data1); var : sum1(0,Data1),mav1(0,Data1); Array : C1[100](0,Data1); if data1(Bdate != Bdate[1]) Then { S1 = data1(TimeToMinutes(stime)); D1 = data1(sdate); } if D1 > 0 then { if data1(sdate == D1) Then TM = data1(TimeToMinutes(stime))-S1; Else TM = data1(TimeToMinutes(stime))+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = data1(C); if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; Plot1(mav1); } } 즐거운 하루되세요 > 맘속의행복 님이 쓴 글입니다. > 제목 : 질문드립니다 > 안녕하세요 전에 3분봉 챠트에 30분봉의 20이평선을 표시하는 함수식을 질문드린 적이 있었고, 답변에 주신 수식은 아래와 같습니다. input : ntime(30),P(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),mav1(0); Array : C1[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P-1] > 0 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P; Plot1(mav1); } } 그런데, 이 식을 시스템식에 이것을 지표로 사용하려 했으나, 무슨 이유인지 수치가 달라집니다. 챠트상에 띄운 해당 이평선과 시스템내에서 지표로 산출되는 수치가 꽤 많이 달라지는 문제를 겪고 있습니다. 해결할 수 있도록 도움 요청드립니다. 감사합니다