예스스탁
예스스탁 답변
2021-11-17 10:57:29
안녕하세요
예스스탁입니다.
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0),Hv(0),Lv(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
T = 0;
Hv = macdo;
Lv = macdo;
Condition1 = False;
if MACDO > 0 Then
{
T = 1;
HH = H;
LL = L;
}
if MACDO < 0 Then
{
T = -1;
HH = H;
LL = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if T == 1 and CrossUp(MACDO,0) AND Condition1 == False Then
{
T = 2;
var1 = HH;
Var2 = LL;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == -1 and CrossDown(MACDO,0) AND Condition1 == False Then
{
T = -2;
var1 = HH;
Var2 = LL;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == 2 or T == -2 Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
if d1 > 0 Then
{
if macdo > hv Then
hv = macdo;
if macdo < lv Then
lv = macdo;
if Condition1 == False and hv >= lv+0.5 and (T <= 1 and T >= -1) Then
{
Condition1 = true;
var1 = DayHigh;
Var2 = DayLow;
TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2);
}
if Condition1 == true Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 글번호 74425번과 74517번에 작성 주신 수식 중
조건이 먼저 충족되는 것으로 지표를 그리고 싶습니다.
당일에 74225번에 답변주신 수식과 74517번에 답변주신 수식을 한개의 수식으로 작성하여 먼저 조건이 충족되면 각 1개의 고점과 저점을 그릴 수 있도록 부탁드립니다.
[74425번]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
T = 0;
if MACDO > 0 Then
{
T = 1;
HH = H;
LL = L;
}
if MACDO < 0 Then
{
T = -1;
HH = H;
LL = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
}
if T == 1 and CrossUp(MACDO,0) Then
{
T = 2;
var1 = HH;
Var2 = LL;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == -1 and CrossDown(MACDO,0) Then
{
T = -2;
var1 = HH;
Var2 = LL;
TL1 = TL_New(d1,t1,var1,sDate,sTime,var1);
TL2 = TL_New(d1,t1,var2,sDate,sTime,var2);
}
if T == 2 or T == -2 Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}
[74517번]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0);
var : d1(0),t1(0),tl1(0),tl2(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
HH = macdo;
LL = macdo;
Condition1 = False;
}
if d1 > 0 Then
{
if macdo > hh Then
hh = macdo;
if macdo < ll Then
ll = macdo;
if Condition1 == False and hh >= ll+0.5 Then
{
Condition1 = true;
var1 = DayHigh;
Var2 = DayLow;
TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1);
TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2);
}
if Condition1 == true Then
{
TL_SetEnd(TL1,sDate,sTime,var1);
TL_SetEnd(TL2,sDate,sTime,var2);
}
}