예스스탁
예스스탁 답변
2024-03-26 13:29:10
안녕하세요
예스스탁입니다.
색상이 변경되면 신호가 발생되게 작성해 드립니다.
봉이 진행되면서 색상의 변경이 있을 수 있으므로
최종 색상은 다를수 있습니다.
input : N(10);
var : ii(0),TF(0),TL(0),Box1(0),Box2(0),cnt(0);
var : h5(0),l5(0),m5(0),clr(0),clr1(0);
Array : HH[10](0),LL[10](0);
if Bdate != Bdate[1] Then
ii = 0;
Else
ii = ii +1;
TF = ii%N;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and TF < TF[1] and TF > -1) Then
{
var1 = O;
Var2 = H;
Var3 = L;
var11 = var1[1];
Var4 = (Var2+Var3)/2;
Var41 = Var4[1];
For cnt = 9 downto 1
{
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
}
hh[0] = Var2;
ll[0] = Var3;
h5 = 0;
l5 = 0;
For cnt = 1 to 5
{
if h5 == 0 or (h5 > 0 and hh[cnt] > h5) Then
h5 = hh[cnt];
if l5 == 0 or (l5 > 0 and ll[cnt] < l5) Then
l5 = ll[cnt];
}
m5 = (h5+l5)/2;
value1 = sDate;
Value2 = sTime;
TL = TL_new(sDate,sTime,var4,NextBarSdate,NextBarStime,var4);
TL_SetColor(TL,Green);
TL_SetSize(TL,1);
clr1 = clr[1];
Box1 = Box_New(sDate,sTime,var2,NextBarSdate,NextBarStime,Var3);
if var4 > m5 Then
Box_SetColor(Box1,Red);
Else
Box_SetColor(Box1,Blue);
Box_SetFill(Box1,true);
}
Else
{
if H > Var2 Then
Var2 = H;
if L < var3 Then
Var3 = L;
Var4 = (Var2+Var3)/2;
TL_SetBegin(TL,value1,Value2,var4);
TL_SetEnd(TL,NextBarSdate,NextBarStime,var4);
Box_SetBegin(Box1,value1,Value2,Var2);
Box_SetEnd(Box1,NextBarSdate,NextBarStime,Var3);
if var4 > m5 Then
clr = Red;
Else
clr = Blue;
Box_SetColor(Box1,clr);
hh[0] = Var2;
ll[0] = Var3;
}
if clr == Red and clr != clr1 Then
Buy();
if clr == Blue and clr != clr1 Then
Sell();
즐거운 하루되세요
> 새벽에 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 안녕하세요
만들어주신 수식및 설명 감사합니다
박스의 중간값 판단값에 의한 신호발생이 아닌
단순히
색상이 바뀌는 첫봉에 사진과같은 조그만 박스가 만들어진다면 무조건 신호가 발생되기를 원합니다
저의 의도는 색상이 변하거나? 변할려 했다는 것을 인식하기 위함입니다
항시 부족하지만 저의 의도가 전달되었기를 바라며 다시한번 부탁드립니다
첨부사진처럼 파랑이던박스가 빨강색으로 작게 표시되는첫봉입니다
반대로 빨강이던박스가 파랑색으로변하는첫봉에 신호가발생되기를원합니다
제생각으로해보았는데 if (color == Blue and color[1] == Red) Then
Sell(); 혹시이런조건문으로 될수있는지?모르겠습니다
만약첫봉에 안된다면 두번째봉에 신호발생토록 부탁드립니다
감사합니다
-------------------------------------------------------------
수식작성 Q&A 홈아이콘 이미지 커뮤니티 | 수식작성 Q&A
작성자 : 예스스탁 작성일 : 2024-03-25 오후 2:43:48 조회수 : 7
시스템 Re : 문의드립니다
안녕하세요
예스스탁입니다.
올리신 그림과 같이 박스의 첫봉에 신호는 가능하지 않습니다.
봉을 N개로 구분해서 마지막봉까지 진행되어야
박스의 최종 중간값이 이평보다 큰지 작은지 판단이 됩니다.
색상이 바뀌는 N개봉 구간의 마지막봉에 신호가 표시되게 작성해 드립니다.
input : N(10);
var : ii(0),TF(0),TL(0),Box1(0),Box2(0),cnt(0);
var : h5(0),l5(0),m5(0),clr(0),clr1(0);
Array : HH[10](0),LL[10](0);
if Bdate != Bdate[1] Then
ii = 0;
Else
ii = ii +1;
TF = ii%N;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and TF < TF[1] and TF > -1) Then
{
var1 = O;
Var2 = H;
Var3 = L;
var11 = var1[1];
Var4 = (Var2+Var3)/2;
Var41 = Var4[1];
For cnt = 9 downto 1
{
HH[cnt] = HH[cnt-1];
LL[cnt] = LL[cnt-1];
}
hh[0] = Var2;
ll[0] = Var3;
h5 = 0;
l5 = 0;
For cnt = 1 to 5
{
if h5 == 0 or (h5 > 0 and hh[cnt] > h5) Then
h5 = hh[cnt];
if l5 == 0 or (l5 > 0 and ll[cnt] < l5) Then
l5 = ll[cnt];
}
m5 = (h5+l5)/2;
value1 = sDate;
Value2 = sTime;
TL = TL_new(sDate,sTime,var4,NextBarSdate,NextBarStime,var4);
TL_SetColor(TL,Green);
TL_SetSize(TL,1);
clr1 = clr[1];
Box1 = Box_New(sDate,sTime,var2,NextBarSdate,NextBarStime,Var3);
if var4 > m5 Then
Box_SetColor(Box1,Red);
Else
Box_SetColor(Box1,Blue);
Box_SetFill(Box1,true);
}
Else
{
if H > Var2 Then
Var2 = H;
if L < var3 Then
Var3 = L;
Var4 = (Var2+Var3)/2;
TL_SetBegin(TL,value1,Value2,var4);
TL_SetEnd(TL,NextBarSdate,NextBarStime,var4);
Box_SetBegin(Box1,value1,Value2,Var2);
Box_SetEnd(Box1,NextBarSdate,NextBarStime,Var3);
if var4 > m5 Then
clr = Red;
Else
clr = Blue;
Box_SetColor(Box1,clr);
hh[0] = Var2;
ll[0] = Var3;
}
if TF == N-1 and clr == Red and clr != clr1 Then
Buy();
if TF == N-1 and clr == Blue and clr != clr1 Then
Sell();