예스스탁
예스스탁 답변
2022-01-12 10:49:33
안녕하세요
예스스탁입니다.
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);
Var : ,HV(0),LV(0),tl3(0),tl4(0),entry(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
HH = 0;
LL = 0;
Condition1 = False;
entry = 0;
}
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);
}
}
if Bdate != Bdate[1] Then
{
d1 = sDate;
t1 = sTime;
T = 0;
if MACDO > 0 Then
{
T = 1;
HV = H;
LV = L;
}
if MACDO < 0 Then
{
T = -1;
HV = H;
LV = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HV Then
HV = H;
if L < LV Then
LV = L;
}
if T == 1 and CrossUp(MACDO,0) Then
{
T = 2;
var3 = HV;
Var4 = LV;
TL1 = TL_New(d1,t1,var3,sDate,sTime,var3);
TL2 = TL_New(d1,t1,var4,sDate,sTime,var4);
}
if T == -1 and CrossDown(MACDO,0) Then
{
T = -2;
var3 = HV;
Var4 = LV;
TL1 = TL_New(d1,t1,var3,sDate,sTime,var3);
TL2 = TL_New(d1,t1,var4,sDate,sTime,var4);
}
if T == 2 or T == -2 Then
{
TL_SetEnd(TL1,sDate,sTime,var3);
TL_SetEnd(TL2,sDate,sTime,var4);
}
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if Condition1 == true and (T >= 2 or T <= -2) Then
{
if MarketPosition == 0 and CrossUp(C,var1) and entry < 2 Then
Sell("s",AtMarket);
if MarketPosition == -1 and CrossDown(c,Var2) Then
ExitShort("sx",AtMarket);
if MarketPosition == 0 and CrossDown(C,var2) and entry < 2 Then
Buy("b",AtMarket);
if MarketPosition == 1 and CrossUp(c,Var2) Then
ExitLong("bx",AtMarket);
}
SetStopEndofday(151500);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
기작성주신 아래 글번호 75023번의 지표와 74425번의 지표를 활용하여
국내선물 3분봉으로 일중거래를 하고자 합니다.
HH, LL, HV, LV 값이 모두 생성되되 HH < HV, LL > LV 이면서
- 무포지션에서 현주가가 HH 돌파 완성시 익봉시가에 매도 진입
- 매도 진입 이후 LL 이탈 완성시 익봉시가에 매도 청산
- 무포지션에서 현주가가 LL 이탈 완성시 익봉시가에 매수 진입
- 매수 진입 현주가가 HH 돌파 완성시 익봉시가에 매수 청산
- 15시 15분 종가청산으로 오버나이트를 하지 않고자 합니다.
- 진입기준으로 최대 2회입니다.
-----------------------------------------------------------------------------------
[지표 75023]
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 = 0;
LL = 0;
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);
}
}
[지표 74425]
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),T(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;
if MACDO > 0 Then
{
T = 1;
HV = H;
LV = L;
}
if MACDO < 0 Then
{
T = -1;
HV = H;
LV = L;
}
}
Else
{
if ABS(T) < 2 Then
{
if H > HV Then
HV = H;
if L < LV Then
LV = L;
}
if T == 1 and CrossUp(MACDO,0) Then
{
T = 2;
var1 = HV;
Var2 = LV;
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 = HV;
Var2 = LV;
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);
}
}