수고하십니다
아래는 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("매도");