예스스탁
예스스탁 답변
2022-05-13 15:12:25
안녕하세요
예스스탁입니다.
Input : short(12), long(26), signal(9);
Var : MACDv(0), MACDs(0),macdo(0),HH(0),LL(0);
var : d1(0),t1(0),tl1(0),tl2(0),S(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;
S = 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 MarketPosition <= 0 Then
{
if S == 0 and C > var1 and macdo < 0 Then
{
S = 1;
Buy("b1",AtMarket);
}
if S == 1 and C > var1 and macdo > 0 Then
{
S = 2;
Buy("b2",AtMarket);
}
}
if MarketPosition == 1 and C < var1 and macdo < 0 Then
ExitLong("bx",AtMarket);
if MarketPosition >= 0 Then
{
if S == 0 and C < var2 and macdo > 0 Then
{
S = -1;
Sell("s1",AtMarket);
}
if S == -1 and C < var2 and macdo < 0 Then
{
S = -2;
Sell("s2",AtMarket);
}
}
if MarketPosition == -1 and C > var2 and macdo > 0 Then
ExitShort("sx",AtMarket);
}
}
SetStopEndofday(151500);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 글번호 75023번에 작성주신 지표를 응용하여
국내선물 3분봉으로 일중거래를 하고자 합니다.
- 현재가가 고점(HH)보다 크면서 MACD오실레이터 값이 음수이면 익봉 시가에 매수 진입(B1)
현재가가 고점(HH)보다 크면서 MACD오실레이터 값이 양수이면 익봉 시가에 매수 진입(B2)
매수 진입 이후 현재가가 고점(HH)보다 작고 MACD오실레이터 값이 음수이면 완성 익봉 시가에 매수청산(BX)
- 현재가가 저점(LL)보다 작으면서 MACD오실레이터 값이 양수이면 익봉 시가에 매도 진입(S1)
현재가가 저점(LL)보다 작으면서 MACD오실레이터 값이 음수이면 익봉 시가에 매도 진입(S2)
매도 진입 이후 현재가가 저점(LL)보다 크고 MACD오실레이터 값이 양수이면 완성 익봉 시가에 매도청산(SX)
다만 개장후 B1의 조건이 먼저 나오면 실행을 하되 B2가 먼저 나오면 주문을 실행하지 않습니다.
마찬가지로 개장후 S1의 조건이 먼저 나오면 실행을 하되 S2가 먼저 나오면 주문을 실행하지 않습니다.
또한 매수든 매도든 진입은 한쪽만 실행하며 진입기준으로 최대 두번이 맥스 입니다.
(B1), (B1,B2), (S1), (S1,S2)
즉, 당일에 발생될 수 있는 매매시나리오는 B1-> BX 혹은 B1-> BX-> B2-> BX 이거나
S1-> SX 혹은 S1-> SX-> S2-> SX로만 거래를 하고 싶습니다.
15시 15분에는 강제청산합니다.