예스스탁
예스스탁 답변
2022-10-28 13:11:32
안녕하세요
예스스탁입니다.
1
input : N(8),진입Per(-23.6),xN(10),청산Per(61.8);
input : 익절틱수(200),손절틱수(40);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
var : xh(0),xl(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
ExitLong();
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
xh = 0;
xl = 0;
For cnt = 0 to xN-1
{
if xh == 0 or (xh > 0 and DayHigh(cnt) > xh) Then
xh = DayHigh(cnt);
if xl == 0 or (xl > 0 and DayLow(cnt) < xl) Then
xl = DayLow(cnt);
}
XP = xl[BarsSinceEntry]+(xh[BarsSinceEntry]-xl[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2
input : N(8),진입Per(38.2),청산Per(61.8);
input : 익절틱수(150),손절틱수(40);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
XP = ll[BarsSinceEntry]+(hh[BarsSinceEntry]-ll[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
즐거운 하루되세요
> 푸른 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> input : N(8),진입Per(-23.6),청산Per(61.8);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
ExitLong();
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
XP = ll[BarsSinceEntry]+(hh[BarsSinceEntry]-ll[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
-----------------
청산이 당일신호로 나옵니다.
수식어에서 진입 N값은 8일입니다.
청산 N값을 진입 N값하고 기간을 다르게 숫자로 표기 하고 싶습니다.
예를들면 8일 기간값에서 진입신호후 청산은 10일중에 청산값에 도달하면
되는걸 말합니다.
익절 200 손절 40 포함해 주셨으면 합니다.
------------------------
input : N(8),진입Per(38.2),청산Per(61.8);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
IF ET > ST Then
SetStopEndofday(ET);
Else
{
if NextBarSdate != sDate Then
SetStopEndofday(ET);
}
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
SetStopEndofday(0);
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
XP = ll[BarsSinceEntry]+(hh[BarsSinceEntry]-ll[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
---------------
위 수식어를 익절150 손절 40을 포함한 당일청산이 아닌 식으로 부탁드립니다.