예스스탁
예스스탁 답변
2020-12-11 15:05:22
안녕하세요
예스스탁입니다.
input : SSTIME(070001), EETIME(182000);
var : v0(0),v1(0);
Vars : TCOND(False);
If SSTIME < EETIME Then
Begin
If SSTIME <= sTime And sTime <= EETIME Then TCOND = True;
Else TCOND = False;
End
Else
Begin
If SSTIME <= sTime Or sTime <= EETIME Then TCOND = True;
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period1(14), Period2(179);
Vars : ST_Ma1(0), ST_Ma2(0);
ST_Ma1 = ma((O+H+L+C)/4, Period1);
ST_Ma2 = ma((O+H+L+C)/4, Period2);
// 일봉 기준 파란색
Vars : vShortP7(14), vLongP7(173), vSigP7(1);
Vars : vMACD7(0), vSignal7(0);
vMACD7 = MACD(vShortP7, vLongP7);
vSignal7 = Ema(vMACD7, vSigP7);
/////////////////////////////////////////////////////////
input : BuyA_ShortLeng(7) // 단기 이동평균 기간
, BuyA_LongLeng(40) // 장기 이동평균 기간
;
var : BuyA_V1(0), BuyA_V2(0), BuyA_Result(FALSE);
BuyA_V1 = ma(Volume, BuyA_ShortLeng);
BuyA_V2 = ma(Volume, BuyA_LongLeng);
BuyA_Result = FALSE;
IF BuyA_V1 >= BuyA_V2 Then
BuyA_Result = TRUE;
Vars : vDn (102), vUp (1000);
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 < 0 And CrossDown(ST_Ma1, ST_Ma2) Then Sell("V매도");
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 > 0 And CrossUp(ST_Ma1, ST_Ma2) Then Buy("V매수");
// 익절 및 손절
Vars : Exit_P(0), Exit_L(0);
Vars : SP(0), TickSize(0);
SP = marketposition;
TickSize = PriceScale;
SetStopLoss(Exit_L * TickSize,PointStop);
SetStopProfitTarget(Exit_P * TickSize,PointStop);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
input : SSTIME1(183500), EETIME1(192600);
Vars : TCOND1(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME1 <= sTime And sTime <= EETIME1 Then TCOND1 = True;
Else TCOND1 = False;
End
Else
Begin
If SSTIME1 <= sTime Or sTime <= EETIME1 Then TCOND1 = True;
Else TCOND1 = False;
End;
If TCOND1 Then
Begin
Vars : SP12(0), TickSize12(0);
SP12 = marketposition;
TickSize12 = PriceScale;
input : Period(10);
V0 = Lowest(L, Period)[1]; // Price Ch Lower
V1 = Highest(H, Period)[1]; // Price Ch Upper
input : vP1(5), vP2(21);
Vars : vM1(0), vM2(0);
vM1 = ma(C, vP1);
vM2 = ma(C, vP2);
If SP12 == 0 Then
Begin
If vM1 > vM2 And C < v0 Then Buy("B", Atlimit, v0);
If vM1 < vM2 And C > v1 Then Sell("S", Atlimit, v1);
End;
// 익절 및 손절
input : Exit_P12(121), Exit_L12(50);
SP12 = marketposition;
TickSize12 = PriceScale;
SetStopLoss(Exit_L12 * TickSize12,PointStop);
SetStopProfitTarget(Exit_P12 * TickSize12,PointStop);
input : exitP(65), trailA(1);
SetStopTrailing(trailA * TIckSize12, exitP * TIckSIze12,PointStop);
End;
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// ///////////////////////////////////////
input : SSTIME3(193200), EETIME3(211200);
Vars : TCOND3(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME3 <= sTime And sTime <= EETIME3 Then TCOND3 = True;
Else TCOND3 = False;
End
Else
Begin
If SSTIME3 <= sTime Or sTime <= EETIME3 Then TCOND = True;
Else TCOND3 = False;
End;
If TCOND3 Then
Begin
Vars : SP1(0), TickSize1(0);
SP1 = marketposition;
TickSize1 = PriceScale;
input : Period13(4);
V0 = Lowest(L, Period13)[1]; // Price Ch Lower
V1 = Highest(H, Period13)[1]; // Price Ch Upper
input : vP11(19), vP22(42);
Vars : vM11(0), vM22(0);
vM11 = ma(C, vP11);
vM22 = ma(C, vP22);
If SP1 == 0 Then
Begin
If vM11 > vM22 And C < v0 Then Buy("Bb", Atlimit, v0);
If vM11 < vM22 And C > v1 Then Sell("Ss", Atlimit, v1);
End;
// 익절 및 손절
input : Exit_P1(148), Exit_L1(46);
Vars : SP111(0), TickSize111(0);
SP111 = marketposition;
TickSize111 = PriceScale;
SetStopLoss(Exit_L1 * TickSize111,PointStop);
SetStopProfitTarget(Exit_P1 * TickSize111,PointStop);
input : exitP1(101), trailA1(1);
SetStopTrailing(trailA1 * TIckSize111, exitP1 * TIckSIze111 ,PointStop);
End;
///////////////////////////////// ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
input : SSTIME33(203100), EETIME33(060000);
Vars : TCOND33(False);
If SSTIME33 < EETIME33 Then
Begin
If SSTIME33 <= sTime And sTime <= EETIME33 Then TCOND33 = True;
Else TCOND33 = False;
End
Else
Begin
If SSTIME33 <= sTime Or sTime <= EETIME33 Then TCOND33 = True;
Else TCOND33 = False;
End;
If TCOND33 Then
Begin
Vars : SP11(0), TickSize11(0);
SP11 = marketposition;
TickSize11 = PriceScale;
input : Period133(5);
V0 = Lowest(L, Period133)[1]; // Price Ch Lower
V1 = Highest(H, Period133)[1]; // Price Ch Upper
input : vP111(9), vP222(39);
Vars : vM111(0), vM222(0);
vM111 = ma(C, vP111);
vM222 = ma(C, vP222);
If SP11 == 0 Then
Begin
If vM111 > vM222 And C < v0 Then Buy("Bbb", Atlimit, v0);
If vM11 < vM222 And C > v1 Then Sell("Sss", Atlimit, v1);
End;
// 익절 및 손절
input : Exit_P11(400), Exit_L11(82);
Vars : SP1111(0), TickSize1111(0);
SP1111 = marketposition;
TickSize1111 = PriceScale;
SetStopLoss(Exit_L11 * TickSize1111,PointStop);
SetStopProfitTarget(Exit_P11 * TickSize1111,PointStop);
input : exitP12(44), trailA12(1);
SetStopTrailing(trailA12 * TIckSize1111, exitP12 * TIckSIze1111,PointStop);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
input : SSTIME2(234960), EETIME2(022200);
Vars : TCOND2(False);
If SSTIME2 < EETIME2 Then
Begin
If SSTIME2 <= sTime And sTime <= EETIME2 Then TCOND = True;
Else TCOND = False;
End
Else
Begin
If SSTIME2 <= sTime Or sTime <= EETIME2 Then TCOND = True;
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period5(17), Period6(171);
Vars : ST_Ma5(0), ST_Ma6(0);
ST_Ma5 = ma((O+H+L+C)/4, Period5);
ST_Ma6 = ma((O+H+L+C)/4, Period6);
// 일봉 기준 파란색
//////////////////////////////////////////////////
input : BuyA_ShortLeng12(7), BuyA_LongLeng12(24) ;
var : BuyA_V123(0), BuyA_V234(0), BuyA_Result123(FALSE);
BuyA_V123 = ma(Volume, BuyA_ShortLeng12);
BuyA_V234 = ma(Volume, BuyA_LongLeng12);
BuyA_Result123 = FALSE;
IF BuyA_V123 >= BuyA_V234 Then
BuyA_Result123 = TRUE;
if ( BuyA_Result123 )
Then
Begin
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossDown(ST_Ma5, ST_Ma6) Then Sell("A매도");
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossUp(ST_Ma5, ST_Ma6) Then Buy("A매수");
End;
// 익절 및 손절
input : Exit_P2(200), Exit_L2(106);
Vars : SP2(0), TickSize2(0);
SP2 = marketposition;
TickSize2 = PriceScale;
SetStopLoss(Exit_L2 * TickSize2,PointStop);
SetStopProfitTarget(Exit_P2 * TickSize2,PointStop);
input : exitP2(38), trailA2(1);
SetStopTrailing(trailA2 * TIckSize2, exitP2 * TIckSIze2,PointStop);
End;
즐거운 하루되세요
> 판사 님이 쓴 글입니다.
> 제목 : 전략식 변환 부탁드립니다.
> 안녕하세요. 하기전략을 예스랭귀지로 전환부탁드립니다.
수고하세요.
param : SSTIME(070001), EETIME(182000);
Vars : TCOND(False);
If SSTIME < EETIME Then
Begin
If SSTIME <= TIME And TIME <= EETIME Then TCOND = True
Else TCOND = False;
End
Else
Begin
If SSTIME <= TIME Or TIME <= EETIME Then TCOND = True
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period1(14), Period2(179);
Vars : ST_Ma1(0), ST_Ma2(0);
ST_Ma1 = AvgFast((O+H+L+C)/4, Period1);
ST_Ma2 = AvgFast((O+H+L+C)/4, Period2);
// 일봉 기준 파란색
Vars : vShortP7(14), vLongP7(173), vSigP7(1);
Vars : vMACD7(0), vSignal7(0);
vMACD7 = MACD(C, vShortP7, vLongP7);
vSignal7 = XAverage(vMACD7, vSigP7);
/////////////////////////////////////////////////////////
param : BuyA_ShortLeng(7) // 단기 이동평균 기간
, BuyA_LongLeng(40) // 장기 이동평균 기간
;
var : BuyA_V1(0), BuyA_V2(0), BuyA_Result(FALSE);
BuyA_V1 = SMA(Volume, BuyA_ShortLeng);
BuyA_V2 = SMA(Volume, BuyA_LongLeng);
BuyA_Result = FALSE;
IF BuyA_V1 >= BuyA_V2 Then
BuyA_Result = TRUE;
Vars : vDn (102), vUp (1000);
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 < 0 And CrossDown(ST_Ma1, ST_Ma2) Then Sell("V매도");
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 > 0 And CrossUp(ST_Ma1, ST_Ma2) Then Buy("V매수");
// 익절 및 손절
Vars : Exit_P(0), Exit_L(0);
Vars : SP(0), TickSize(0);
SP = SignalPosition;
TickSize = OneTick * PriceScale;
SetStopLoss(Exit_L * TickSize * CurrentContracts);
SetProfitTarget(Exit_P * TickSize * CurrentContracts);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
Params : SSTIME1(183500), EETIME1(192600);
Vars : TCOND1(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME1 <= TIME And TIME <= EETIME1 Then TCOND1 = True
Else TCOND1 = False;
End
Else
Begin
If SSTIME1 <= TIME Or TIME <= EETIME1 Then TCOND1 = True
Else TCOND1 = False;
End;
If TCOND1 Then
Begin
Vars : SP12(0), TickSize12(0);
SP12 = SignalPosition;
TickSize12 = OneTick * PriceScale;
Params : Period(10);
V0 = Lowest(L, Period)[1]; // Price Ch Lower
V1 = Highest(H, Period)[1]; // Price Ch Upper
Params : vP1(5), vP2(21);
Vars : vM1(0), vM2(0);
vM1 = AvgFast(C, vP1);
vM2 = AvgFast(C, vP2);
If SP12 = 0 Then
Begin
If vM1 > vM2 And C < v0 Then Buy("B", Atlimit, v0);
If vM1 < vM2 And C > v1 Then Sell("S", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P12(121), Exit_L12(50);
SP12 = SignalPosition;
TickSize12 = OneTick * PriceScale;
SetStopLoss(Exit_L12 * TickSize12 * CurrentContracts);
SetProfitTarget(Exit_P12 * TickSize12 * CurrentContracts);
Params : exitP(65), trailA(1);
SetStopTrailing(trailA * TIckSize12 * CurrentContracts, exitP * TIckSIze12 * CurrentContracts);
End;
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// ///////////////////////////////////////
param : SSTIME3(193200), EETIME3(211200);
Vars : TCOND3(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME3 <= TIME And TIME <= EETIME3 Then TCOND3 = True
Else TCOND3 = False;
End
Else
Begin
If SSTIME3 <= TIME Or TIME <= EETIME3 Then TCOND = True
Else TCOND3 = False;
End;
If TCOND3 Then
Begin
Vars : SP1(0), TickSize1(0);
SP1 = SignalPosition;
TickSize1 = OneTick * PriceScale;
Params : Period13(4);
V0 = Lowest(L, Period13)[1]; // Price Ch Lower
V1 = Highest(H, Period13)[1]; // Price Ch Upper
Params : vP11(19), vP22(42);
Vars : vM11(0), vM22(0);
vM11 = AvgFast(C, vP11);
vM22 = AvgFast(C, vP22);
If SP1 = 0 Then
Begin
If vM11 > vM22 And C < v0 Then Buy("Bb", Atlimit, v0);
If vM11 < vM22 And C > v1 Then Sell("Ss", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P1(148), Exit_L1(46);
Vars : SP111(0), TickSize111(0);
SP111 = SignalPosition;
TickSize111 = OneTick * PriceScale;
SetStopLoss(Exit_L1 * TickSize111 * CurrentContracts);
SetProfitTarget(Exit_P1 * TickSize111 * CurrentContracts);
Params : exitP1(101), trailA1(1);
SetStopTrailing(trailA1 * TIckSize111 * CurrentContracts, exitP1 * TIckSIze111 * CurrentContracts);
End;
///////////////////////////////// ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
param : SSTIME33(203100), EETIME33(060000);
Vars : TCOND33(False);
If SSTIME33 < EETIME33 Then
Begin
If SSTIME33 <= TIME And TIME <= EETIME33 Then TCOND33 = True
Else TCOND33 = False;
End
Else
Begin
If SSTIME33 <= TIME Or TIME <= EETIME33 Then TCOND33 = True
Else TCOND33 = False;
End;
If TCOND33 Then
Begin
Vars : SP11(0), TickSize11(0);
SP11 = SignalPosition;
TickSize11 = OneTick * PriceScale;
Params : Period133(5);
V0 = Lowest(L, Period133)[1]; // Price Ch Lower
V1 = Highest(H, Period133)[1]; // Price Ch Upper
Params : vP111(9), vP222(39);
Vars : vM111(0), vM222(0);
vM111 = AvgFast(C, vP111);
vM222 = AvgFast(C, vP222);
If SP11 = 0 Then
Begin
If vM111 > vM222 And C < v0 Then Buy("Bbb", Atlimit, v0);
If vM11 < vM222 And C > v1 Then Sell("Sss", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P11(400), Exit_L11(82);
Vars : SP1111(0), TickSize1111(0);
SP1111 = SignalPosition;
TickSize1111 = OneTick * PriceScale;
SetStopLoss(Exit_L11 * TickSize1111 * CurrentContracts);
SetProfitTarget(Exit_P11 * TickSize1111 * CurrentContracts);
Params : exitP12(44), trailA12(1);
SetStopTrailing(trailA12 * TIckSize1111 * CurrentContracts, exitP12 * TIckSIze1111 * CurrentContracts);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
param : SSTIME2(234960), EETIME2(022200);
Vars : TCOND2(False);
If SSTIME2 < EETIME2 Then
Begin
If SSTIME2 <= TIME And TIME <= EETIME2 Then TCOND = True
Else TCOND = False;
End
Else
Begin
If SSTIME2 <= TIME Or TIME <= EETIME2 Then TCOND = True
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period5(17), Period6(171);
Vars : ST_Ma5(0), ST_Ma6(0);
ST_Ma5 = AvgFast((O+H+L+C)/4, Period5);
ST_Ma6 = AvgFast((O+H+L+C)/4, Period6);
// 일봉 기준 파란색
//////////////////////////////////////////////////
Params : BuyA_ShortLeng12(7), BuyA_LongLeng12(24) ;
var : BuyA_V123(0), BuyA_V234(0), BuyA_Result123(FALSE);
BuyA_V123 = SMA(Volume, BuyA_ShortLeng12);
BuyA_V234 = SMA(Volume, BuyA_LongLeng12);
BuyA_Result123 = FALSE;
IF BuyA_V123 >= BuyA_V234 Then
BuyA_Result123 = TRUE;
if ( BuyA_Result123 )
Then
Begin
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossDown(ST_Ma5, ST_Ma6) Then Sell("A매도");
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossUp(ST_Ma5, ST_Ma6) Then Buy("A매수");
End;
// 익절 및 손절
Params : Exit_P2(200), Exit_L2(106);
Vars : SP2(0), TickSize2(0);
SP2 = SignalPosition;
TickSize2 = OneTick * PriceScale;
SetStopLoss(Exit_L2 * TickSize2 * CurrentContracts);
SetProfitTarget(Exit_P2 * TickSize2 * CurrentContracts);
Params : exitP2(38), trailA2(1);
SetStopTrailing(trailA2 * TIckSize2 * CurrentContracts, exitP2 * TIckSIze2 * CurrentContracts);
End;