커뮤니티

문의 드립니다

프로필 이미지
dkfvkrh7
2024-07-16 14:06:54
734
글번호 181551
답변완료
수고하십니다 아래는 AF(0.02), AFMAX(0.2) 1개의 크기를 위한 수식입니다 그러면 AF2(0.02), AFMAX2(0.2) and AF3(0.03), AFMAX3(0.2) and AF4(0.04), AFMAX4(0.2) and ... 등등 여러 크기의 AF(0), AFMAX(0) 가 필요할 때에는 아래 수식도 그 갯수만큼 각각 만들야 되는지요 아니면 아래 1개의 수식을 활용해서 여러개의 다른 크기별로 작성할 수 있는 방법이 있는지 문의 드립니다 감사합니다 Input : AF(0.02), AFMAX(0.2); Input : p(0); var : Diff(0), mav(0); Diff = (C); mav = ma(Diff,P); Var : Direction(0), SAR_Value(Diff), AF_Value(.02), HighValue(diff), LowValue(diff), EP(0),CSARV(0); if Diff == 0 Then Diff = Diff[1]; if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff > HighValue then { HighValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if diff < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = diff; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff < LowValue then { LowValue = diff; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if diff > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = diff; } } CSarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff > HighValue then { HighValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff < LowValue then { LowValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } CSarv = SAR_Value; } else { if Direction == 0 then { if diff > diff[1] then Direction = 1; else if diff < diff[1] then Direction = -1; } else { if Direction == 1 then { if diff < diff[1] then { Direction = -1; SAR_Value = HighValue; CSarv = SAR_Value; } } if Direction == -1 then { if diff > diff[1] then { Direction = 1; SAR_Value = LowValue; CSarv = SAR_Value; } } } LowValue = min(diff, LowValue); HighValue = max(diff, HighValue); } } if (diff > CSARV) Then buy("매수"); if (diff < CSARV) Then sell("매도");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-07-16 15:32:29

안녕하세요 예스스탁입니다. 1 AF와 AFMAX의 값만 변경해서 적용하신 다면 따로 만드실 필요가 없습니다. 변수 중 input은 외부 설정창에서 값을 변경할 수 있는 변수입니다. 적용시 설정창의 변수탭에서 값 변경해 적용하시면 됩니다. 2 하나의 시스템에서 여러개의 AF와 AFMAX의 값을 사용한 계산식이 필요하다면 수식안에 필요한 갯수만큼 모두 작성해서 사용하셔야 합니다. 이때 사용된 input과 var변수가 겹치지 않게 따로 만들어서 추가하셔야 합니다. 간단히 예로 아래와 같이 20이평을 크로스하면 매수매도되는 전략이 있는데 input : p(20); var : mav(0); mav = ma(C,P); if CrossUp(C,mav) Then Buy(); if CrossDown(c,mav) Then Sell(); 60이평을 추가해 이평을 2개를 사용하는 전략을 만든다면 아래와 같이 기존변수와 겹치지 않는 변수(mav1,P1)를 만들고 mav1에 p1기간 이평값을 저장해서 조건식에서 이용하게 됩니다. input : p(20),P1(60); var : mav(0),mav1(0); mav = ma(C,P); mav1 = ma(c,P1); if CrossUp(C,mav) and CrossUp(C,mav1) Then Buy(); if CrossDown(c,mav) and CrossDown(c,mav1) Then Sell(); 즐거운 하루되세요 > dkfvkrh7 님이 쓴 글입니다. > 제목 : 문의 드립니다 > 수고하십니다 아래는 AF(0.02), AFMAX(0.2) 1개의 크기를 위한 수식입니다 그러면 AF2(0.02), AFMAX2(0.2) and AF3(0.03), AFMAX3(0.2) and AF4(0.04), AFMAX4(0.2) and ... 등등 여러 크기의 AF(0), AFMAX(0) 가 필요할 때에는 아래 수식도 그 갯수만큼 각각 만들야 되는지요 아니면 아래 1개의 수식을 활용해서 여러개의 다른 크기별로 작성할 수 있는 방법이 있는지 문의 드립니다 감사합니다 Input : AF(0.02), AFMAX(0.2); Input : p(0); var : Diff(0), mav(0); Diff = (C); mav = ma(Diff,P); Var : Direction(0), SAR_Value(Diff), AF_Value(.02), HighValue(diff), LowValue(diff), EP(0),CSARV(0); if Diff == 0 Then Diff = Diff[1]; if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff > HighValue then { HighValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } if diff < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = diff; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff < LowValue then { LowValue = diff; AF_Value = AF_Value + Af; if AF_Value >= AFMAX then AF_Value = AFMAX; } if diff > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = diff; } } CSarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff > HighValue then { HighValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if diff < LowValue then { LowValue = diff; AF_Value = AF_Value + AF; if AF_Value >= AFMAX then AF_Value = AFMAX; } } CSarv = SAR_Value; } else { if Direction == 0 then { if diff > diff[1] then Direction = 1; else if diff < diff[1] then Direction = -1; } else { if Direction == 1 then { if diff < diff[1] then { Direction = -1; SAR_Value = HighValue; CSarv = SAR_Value; } } if Direction == -1 then { if diff > diff[1] then { Direction = 1; SAR_Value = LowValue; CSarv = SAR_Value; } } } LowValue = min(diff, LowValue); HighValue = max(diff, HighValue); } } if (diff > CSARV) Then buy("매수"); if (diff < CSARV) Then sell("매도");