예스스탁
예스스탁 답변
2021-05-04 16:45:23
안녕하세요
예스스탁입니다.
var : Period1(3),Period2(10),Period3(30),Period4(120),X5(0),X20(0),X60(0),XP(0),X(0),Y(0),Z(0),Q(0),Mav1(0), Mav2(0),Mav3(0),Mav4(0);
Input : Left(3),right(3);
var : B5(0),BP60(0),B20(0),B60(0),S5(0),S20(0),S60(0),SP60(0),Bcnt5(0),Bcnt20(0),Bcnt60(0),BcntP60(0), Scnt5(0), Scnt20(0), Scnt60(0),ScntP60(0),H1(0),H2(0),L1(0),L2(0);
InPUT : 진입시작시간(090000), 매매종료시간(153000);
if Bdate != Bdate[1] Then
{
Condition1 = False;
Condition2 = False;
}
Var26 = ema(Ema(Ema(c,period1),period1),period1); //ma(c,period1); //5선
Var27 = ema(Ema(Ema(c,period2),period2),period2); //20선
Var28 = ema(Ema(Ema(c,period3),period3),period3); //60선
Var29 = ema(Ema(Ema(c,period4),period4),period4); //240선
if CrossUp(Var26,Var27) Then
X5 = 1; //5-20 cross
if CrossDown(Var26,Var27) Then
X5 = -1;
if CrossUp(Var27,Var28) Then
X20 = 1; //20-60 cross
if CrossDown(Var27,Var28) Then
X20 = -1;
if CrossUp(Var28,Var29) Then
X60 = 1; //60-240 cross
if CrossDown(Var28,Var29) Then
X60 = -1;
if CrossUp(Var26,Var28) Then
XP = 1; //5-60 cross
if CrossDown(Var26,Var28) Then
XP = -1;
if Var26 > var26[1] Then
X = 1;
if Var26 < var26[1] Then
X = -1;
if Var27 > var27[1] Then // X5 : 5-20 Cross X : 5선
Y = 1; // X20 : 20-60 Cross Y : 20선
if Var27 < var27[1] Then // X60 : 60-240 cross Z : 60선
Y = -1; // XP : 5-60 cross
if Var28 > var28[1] Then
Z = 1;
if Var28 < var28[1] Then
Z = -1;
if X == 1 and X != X[1] and Bdate == Bdate[1] Then
Condition1 = true;
if X == -1 and X != X[1] and Bdate == Bdate[1] Then
Condition2 = true;
//////////////////////상방기준//////////////////
if XP == 1 and X == 1 and Condition1 == true Then //5-60 정배열 & 5상승
{
if X != X[1] Then //5선이 상승변곡 이면 B = 1
{
BP60 = 1;
} //5선이 상승변곡 & 20선 상승 & 5선 20선위 & 몸통이 5 BC 면 B =2
if BP60 == 1 and Y == 1 and Var26 > Var27 and C > O and (C+O)/2 >= var26 Then
{
BP60 = 2;
}
}
else
BP60 = 0;
if sDate == 20210429 and sTime < 92000 Then
MessageLog("%.2f",BP60);
//////////////////////하방기준//////////////////
if XP == -1 and X == -1 and Condition2 == true Then
{
if X!= X[1] Then
{
SP60 = 1;
}
if SP60 == 1 and Y == -1 and Var26 < Var27 and C < O and (C+O)/2 < var26 Then
{
SP60 = 2;
}
}
else
SP60 = 0;
//////////////////////////상방시그널/////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == 1 Then
{
if XP != XP[1] Then
BcntP60 = 0;
if BP60 == 2 and BP60 != BP60[1] Then
{
BcntP60 = BcntP60+1;
if BcntP60 <= 1 Then
Buy("BP60");
}
}
////////////////////////하방 시그널//////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == -1 Then
{
if XP != XP[1] Then
ScntP60 = 0;
if SP60 == 2 and SP60 != SP60[1] Then
{
ScntP60 = ScntP60+1;
if ScntP60 <= 1 Then
Sell("SP60");
}
}
if MarketPosition == 1 Then
{
if X5 == 1 and CountIf(X5 == -1,BarsSinceEntry) == 0 and
X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 <= Var27 then
ExitLong("콜청1",AtMarket);
if X5 == -1 and X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 <= Var27 Then
ExitLong("콜정2",AtMarket);
}
if MarketPosition == -1 Then
{
if X5 == -1 and CountIf(X5 == 1,BarsSinceEntry) == 0 and
X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 >= Var27 Then
ExitShort("풋청1",AtMarket);
if X5 == 1 and X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 >= Var27 Then
ExitShort("풋정2",AtMarket);
}
즐거운 하루되세요
> 중추신경 님이 쓴 글입니다.
> 제목 : 수정부탁바랍니다
> 1. 장시작시 60선위에서 5선이 상승 변곡이 나오고, 캔들 몸통의 절반이 5선이 위에 있을때 매수인데..바로 매수가 들어가네요....
--> 장 시작하고 5선이 꺽였다가 다시 상승할때 몸통이 5선 위에 있을때 매수하고 싶습니다
2. 청산위치가 현재 5선이 20선 위에서 5파동에서 꺽이면 음봉이 나오면 청산인데..
-> 5선이 20선 위에서 5파동 이상인걸 만족하고, 캔들의 몸통의 절반이 20선 아래로 내려올때 청산하고 싶습니다.(모든조건을 동시에 만족이 아니라, 5파동 이상먼저나고, 5선이 꺽여있는 상황에서, 이후에 몸통이 20선 아래로 내려왔을때 청산입니다.
3. 청산 두번째 조건에서, 5선과 20선이 데드크로스가 나고, 5선이 변곡이 나올때 청산인데.
--> 5선과 20선이 데드가 나는 조건에서, 20선 아래서 5선이 상승했다가 다시 꺽일때 그리고 캔들 몸통의 절반이 5선 아래 있을때 청산하고 싶습니다 , 마찬가지로 동시에 만족이 아니라 데드가 나고 나서, 5선이 변곡이 나오고 나서 몸통이 내려왔을때 청산입니다
var : Period1(3),Period2(10),Period3(30),Period4(120),X5(0),X20(0),X60(0),XP(0),X(0),Y(0),Z(0),Q(0),Mav1(0), Mav2(0),Mav3(0),Mav4(0);
Input : Left(3),right(3);
var : B5(0),BP60(0),B20(0),B60(0),S5(0),S20(0),S60(0),SP60(0),Bcnt5(0),Bcnt20(0),Bcnt60(0),BcntP60(0), Scnt5(0), Scnt20(0), Scnt60(0),ScntP60(0),H1(0),H2(0),L1(0),L2(0);
InPUT : 진입시작시간(090000), 매매종료시간(153000);
Var26 = ema(Ema(Ema(c,period1),period1),period1); //ma(c,period1); //5선
Var27 = ema(Ema(Ema(c,period2),period2),period2); //20선
Var28 = ema(Ema(Ema(c,period3),period3),period3); //60선
Var29 = ema(Ema(Ema(c,period4),period4),period4); //240선
if CrossUp(Var26,Var27) Then
X5 = 1; //5-20 cross
if CrossDown(Var26,Var27) Then
X5 = -1;
if CrossUp(Var27,Var28) Then
X20 = 1; //20-60 cross
if CrossDown(Var27,Var28) Then
X20 = -1;
if CrossUp(Var28,Var29) Then
X60 = 1; //60-240 cross
if CrossDown(Var28,Var29) Then
X60 = -1;
if CrossUp(Var26,Var28) Then
XP = 1; //5-60 cross
if CrossDown(Var26,Var28) Then
XP = -1;
if Var26 > var26[1] Then
X = 1;
if Var26 < var26[1] Then
X = -1;
if Var27 > var27[1] Then // X5 : 5-20 Cross X : 5선
Y = 1; // X20 : 20-60 Cross Y : 20선
if Var27 < var27[1] Then // X60 : 60-240 cross Z : 60선
Y = -1; // XP : 5-60 cross
if Var28 > var28[1] Then
Z = 1;
if Var28 < var28[1] Then
Z = -1;
//////////////////////상방기준//////////////////
if XP == 1 and X == 1 Then //5-60 정배열 & 5상승
{
if X != X[1] Then //5선이 상승변곡 이면 B = 1
{
BP60 = 1;
} //5선이 상승변곡 & 20선 상승 & 5선 20선위 & 몸통이 5 BC 면 B =2
if BP60 == 1 and Y == 1 and Var26 > Var27 and C > O and (C+O)/2 >= var26 Then
{
BP60 = 2;
}
}
else
BP60 = 0;
//////////////////////하방기준//////////////////
if XP == -1 and X == -1 Then
{
if X!= X[1] Then
{
SP60 = 1;
}
if SP60 == 1 and Y == -1 and Var26 < Var27 and C < O and (C+O)/2 < var26 Then
{
SP60 = 2;
}
}
else
SP60 = 0;
//////////////////////////상방시그널/////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == 1 Then
{
if XP != XP[1] Then
BcntP60 = 0;
if BP60 == 2 and BP60 != BP60[1] Then
{
BcntP60 = BcntP60+1;
if BcntP60 <= 1 Then
Buy("BP60");
}
}
////////////////////////하방 시그널//////////////////
if sTime >= 진입시작시간 and sTime <= 매매종료시간 and
XP == -1 Then
{
if XP != XP[1] Then
ScntP60 = 0;
if SP60 == 2 and SP60 != SP60[1] Then
{
ScntP60 = ScntP60+1;
if ScntP60 <= 1 Then
Sell("SP60");
}
}
if MarketPosition == 1 Then
{
if X5 == 1 and CountIf(X5 == -1,BarsSinceEntry) == 0 and
X == -1 and X != X[1] and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 2 then
ExitLong("콜청1",AtMarket);
}
if X5 == -1 and X == -1 and X != X[1] Then
ExitLong("콜정2",AtMarket);
if MarketPosition == -1 Then
{
if X5 == -1 and CountIf(X5 == 1,BarsSinceEntry) == 0 and
X == 1 and X != X[1] and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 2 Then
ExitShort("풋청1",AtMarket);
}
if X5 == 1 and X == 1 and X != X[1] Then
ExitShort("풋정2",AtMarket);