답변완료
재문의 드립니다
아래 수식은 전에 문의 드렸던 월, 주봉 중앙선 구하기 수식인데
일봉과 주봉차트에 월봉 중앙선은 표시되지만 주봉 중앙선은 표시가 안됩니다.
그래서 1. 주봉 개수별 중앙선을 주봉, 일봉, 분봉에 적용가능한 수식을 알려주세요
2. 월봉 개수별 중앙선도 주봉, 일봉, 분봉에 적용가능한 수식을 알려주세요
input : n(3);
var : cnt(0),whv(0),wlv(0),mhv(0),mlv(0);
Array : wo[50](0),wh[50](0),wl[50](0),Wc[50](0);
Array : mo[50](0),mh[50](0),ml[50](0),mc[50](0);
if DayOfWeek(Bdate) < DayOfWeek(Bdate[1]) Then
{
For cnt = 49 Downto 1
{
wo[cnt] = wo[cnt-1];
wh[cnt] = wh[cnt-1];
wl[cnt] = wl[cnt-1];
wc[cnt] = wc[cnt-1];
}
wo[0] = o;
wh[0] = h;
wl[0] = l;
}
if wh[0] > 0 and h > wh[0] Then
wh[0] = h;
if wl[0] > 0 and l < wl[0] Then
wl[0] = l;
wc[0] = c;
if bdate > Bdate[1]+30 Then
{
For cnt = 49 Downto 1
{
mo[cnt] = mo[cnt-1];
mh[cnt] = mh[cnt-1];
ml[cnt] = ml[cnt-1];
mc[cnt] = mc[cnt-1];
}
mo[0] = o;
mh[0] = h;
ml[0] = l;
}
if mh[0] > 0 and h > mh[0] Then
mh[0] = h;
if ml[0] > 0 and l < ml[0] Then
ml[0] = l;
mc[0] = c;
if wh[n-1] > 0 and wl[n-1] > 0 Then
{
whv = 0;
wlv = 0;
For cnt = 0 to n-1
{
if whv == 0 or (whv > 0 and wh[cnt] > whv) Then
whv = wh[cnt];
if wlv == 0 or (wlv > 0 and wl[cnt] < wlv) Then
wlv = wl[cnt];
}
Plot1((whv+wlv)/2);
}
if mh[n-1] > 0 and ml[n-1] > 0 Then
{
mhv = 0;
mlv = 0;
For cnt = 0 to n-1
{
if mhv == 0 or (mhv > 0 and mh[cnt] > mhv) Then
mhv = mh[cnt];
if mlv == 0 or (mlv > 0 and ml[cnt] < mlv) Then
mlv = ml[cnt];
}
Plot2((mhv+mlv)/2);
}
2023-07-07
714
글번호 170411
지표
답변완료
식수정
예스스탁 BI
로그아웃 | 회원정보 | 회사소개 | 사이트맵
시스템트레이딩
시스템시장
매매신호
제품소개
주요기능
주요기능
프로그램사용법 Q&A 메뉴
예스스팟 Q&A 메뉴
자유게시판 메뉴
시스템시장 토론실
공지사항
시스템트레이딩 교육
수식작성 Q&A 홈아이콘 이미지 커뮤니티 | 수식작성 Q&A
작성자 : 예스스탁 작성일 : 2023-07-06 오후 1:58:46 조회수 : 5
시스템 Re : 수식추가
안녕하세요
예스스탁입니다.
상단근처 하단근처는 상단-Per%아래, 하단+Per%위로 지정해 드립니다.
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
input : 기준가(12345);
input : BBP(20),dv(2),per(2);
Vars:
VLineUp(0,Data1),
VLineDn(0,Data1),
HHighest(0,Data1),
LLowest(0,Data1),
JustChanged(FALSE,Data1),
VLine(0,Data1), DBN(0,Data1);
var : v1(0,Data1),v2(0,Data1),v3(0,Data1),v5(0,Data1),v6(0,Data1);
var : T(0,Data1),cond1(False,Data1),cond2(false,Data1);
var : BBup2(0,Data2),BBdn2(0,Data2);
Array:
Highs[35](0,Data1),
Lows[35](0,Data1),
RRange[35](0,Data1),
UpWave[1](FALSE,Data1),
DnWave[1](FALSE,Data1);
If data1(STime == 180000) Then
DBN = 0;
DBN = DBN + 1;
v1 = Period;
v2 = v1 - 1;
v3 = v1 - 2;
v5 = Sence;
v6 = data1(H-L);
JustChanged = FALSE;
if CurrentBar <= v2 then begin
Highs[CurrentBar] = data1(Close);
Lows[CurrentBar] = data1(Close);
RRange[CurrentBar] = data1((H-L) /2);
end;
if CurrentBar == v1 then begin
if Highs[v2] >= Highs[v3] then begin
UpWave[1] = TRUE;
HHighest = Highs[v2];
VLineUp = HHighest - (v5 * data1(MA(v6,v2)));
end;
if Highs[v2] < Highs[v3] then begin
DnWave[1] = TRUE;
LLowest = Lows[v2];
VLineDn = LLowest + (v5 * data1(MA(v6,v2)));
end;
end;
if CurrentBar > v1 then begin
if DnWave[1] and data1(Close) > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = data1(Close);
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = data1(Close);
HHighest = 0;
end;
if JustChanged == FALSE then begin
if data1(Close) > HHighest then
HHighest = data1(Close);
else if data1(Close) < LLowest then
LLowest = data1(Close);
end;
VLineUp = HHighest - (v5 * data1(MA(v6,v2)));
VLineDn = LLowest + (v5 * data1(MA(v6,v2)));
if UpWave[1] then
T = 1;
else if DnWave[1] then
T = -1;
end;
Cond1 = T == 1 and C > 기준가;
Cond2 = T == -1 and C < 기준가;
bbup2 = Data2(BollBandUp(BBP,dv));
bbdn2 = Data2(BollBandUp(BBP,dv));
if Cond1 == true and Cond1[1] == False and C < bbup2*(1-Per/100) Then
Buy();
if Cond2 == true and Cond2[1] == False and C > bbdn2*(1+Per/100) Then
Sell();
즐거운 하루되세요
> 아트정 님이 쓴 글입니다.
> 제목 : 수식추가
> Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
input : 기준가(12345);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0),T(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
if UpWave[1] then T = 1;
else if DnWave[1] then T = -1;
end;
Condition1 = T == 1 and C > 기준가;
Condition2 = T == -1 and C < 기준가;
if Condition1 == true and Condition1[1] == False Then
Buy();
if Condition2 == true and Condition2[1] == False Then
Sell();
안녕하세요
위식에서 볼밴상단 근처를 틱으로 수정부탁드림니다
Date2 볼밴 상단에서 - 20틱이내 매수금지.
틱변수처리
Date2 볼밴하단 + 20틱이내서 매도금지.
2023-07-07
1419
글번호 170409
시스템