예스스탁
예스스탁 답변
2022-10-17 13:57:27
안녕하세요
예스스탁입니다.
1
input : 익절틱수(300),손절틱수(100);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),entry(0),idx(0),t(0),s(0),HH(0),LL(0);
if sDate != sDate[1] Then
{
DD = DayOfWeek(Sdate);
Year = Floor(Sdate/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 sDate != sDate[1] Then
SetStopEndofday(ET);
}
if ((Sdate != sDate[1] and Stime >= ST) or
(Sdate == sDate[1] and Stime >= ST and sTime[1] < ST)) Then
{
if ET < ST Then
SetStopEndofday(0);
T = 0;
idx = 0;
}
idx = idx+1;
if DayOpen(0) != DayClose(1) Then
{
if (idx == 1 and H >= DayOpen(0)+PriceScale*10) or (idx > 1 and H >= DayOpen(0)+PriceScale*10 and H[1] < DayOpen(0)+PriceScale*10) Then
{
T = 1;
S = Index;
HH = H;
LL = L;
}
if (idx == 1 and L <= DayOpen(0)-PriceScale*10) or (idx > 1 and L <= DayOpen(0)-PriceScale*10 and L[1] > DayOpen(0)-PriceScale*10) Then
{
T = -1;
S = Index;
HH = H;
LL = L;
}
if T == 1 Then
{
if L < LL Then
T = 0;
if Index == S+6 Then
Buy("b",AtMarket);
}
if T == -1 Then
{
if h > HH Then
T = 0;
if Index == S+6 Then
SelL("S",AtMarket);
}
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0);
if sDate != sDate[1] Then
{
DD = DayOfWeek(Sdate);
Year = Floor(Sdate/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 sDate != sDate[1] Then
SetStopEndofday(ET);
}
if ((Sdate != sDate[1] and Stime >= ST) or
(Sdate == sDate[1] and Stime >= ST and sTime[1] < ST)) Then
{
if ET < ST Then
SetStopEndofday(0);
}
if MarketPosition == 0 and L > DayLow(1)-(DayHigh(1)-DayLow(1))*0.2 Then
Buy("b",AtLimit,DayLow(1)-(DayHigh(1)-DayLow(1))*0.2);
if MarketPosition == 1 and L > DayLow(1)-(DayHigh(1)-DayLow(1))*0.2 Then
Sell("s",AtLimit,DayHigh(1)+(DayHigh(1)-EntryPrice)*0.618);
if MarketPosition == -1 Then
ExitShort("sx",AtLimit,DayLow(1)-(DayHigh(1)-DayLow(1))*0.2);
}
3
input : N(5),금액(10000000),P(10);
var : cnt(0),hh(0),ll(0),sum(0),mav(0);
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);
}
sum = 0;
For cnt = 0 to P-1
{
sum = sum + DayClose(cnt);
}
mav = sum/P;
var1 = hh-(hh-ll)*0;
var2 = hh-(hh-ll)*0.236;
var3 = hh-(hh-ll)*0.382;
var4 = hh-(hh-ll)*0.500;
var5 = hh-(hh-ll)*0.618;
var6 = hh-(hh-ll)*0.786;
var7 = hh-(hh-ll)*1.000;
if CrossDown(C,var2) and C > mav Then
Buy("b1",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var3) and C > mav Then
Buy("b2",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var4) and C > mav Then
Buy("b3",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var5) and C > mav Then
Buy("b4",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var6) and C > mav Then
Buy("b5",OnClose,DEF,Floor((금액*0.2)/C));
if MarketPosition == 1 and C < mav Then
{
if CrossUp(c,var1) Then
ExitLong("bx1",OnClose,DEF,"b1");
if CrossUp(c,Var2) Then
ExitLong("bx2",OnClose,DEF,"b2");
if CrossUp(c,Var3) Then
ExitLong("bx3",OnClose,DEF,"b3");
if CrossUp(c,Var4) Then
ExitLong("bx4",OnClose,DEF,"b4");
if CrossUp(c,var5) Then
ExitLong("bx5",OnClose,DEF,"b5");
}
즐거운 하루되세요
> 푸른 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> input : 익절틱수(300),손절틱수(100);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),entry(0);
if sDate != sDate[1] Then
{
DD = DayOfWeek(Sdate);
Year = Floor(Sdate/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 sDate != sDate[1] Then
SetStopEndofday(ET);
}
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
if ET < ST Then
SetStopEndofday(0);
if NextBarOpen != c Then
{
Buy("b",AtStop,NextBarOpen+PriceScale*10);
Sell("s",AtStop,NextBarOpen-PriceScale*10);
}
}
Else
{
if h < DayOpen+PriceScale*10 Then
Buy("b1",AtStop,DayOpen+PriceScale*10);
if l > DayOpen-PriceScale*10 Then
Sell("s1",AtStop,DayOpen-PriceScale*10);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
----------------------
위 첨부파일은 위 수식어에 매수,매도의 진입신호를 캡처한 것입니다.
여기에 조건 수식어를 첨부하고자 합니다.
그 내용은 진입신호후 체결을 바로 하는것이 아니라 신호후 그 다음 6개의
캔들중 하나라도 처음 캔들신호폭을 이탈하면 7번재 캔들싯점에서 체결이 없고
이탈이 아니면 7번재 캔들싯점에서 체결하는 수식어 입니다.
체결후 손절은 15틱으로 별도의 조건부 수식어가 가능한지도 문의 합니다.
-------------------------------
첨부파일 2번의 피보나치 수식어를 부탁드립니다.
-------------------------------
input : N(5),금액(10000000);
var : cnt(0),hh(0),ll(0);
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);
}
var1 = hh-(hh-ll)*0;
var2 = hh-(hh-ll)*0.236;
var3 = hh-(hh-ll)*0.382;
var4 = hh-(hh-ll)*0.500;
var5 = hh-(hh-ll)*0.618;
var6 = hh-(hh-ll)*0.786;
var7 = hh-(hh-ll)*1.000;
if CrossDown(C,var2) Then
Buy("b1",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var3) Then
Buy("b2",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var4) Then
Buy("b3",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var5) Then
Buy("b4",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var6) Then
Buy("b5",OnClose,DEF,Floor((금액*0.2)/C));
if MarketPosition == 1 Then
{
if CrossUp(c,var1) Then
ExitLong("bx1",OnClose,DEF,"b1");
if CrossUp(c,Var2) Then
ExitLong("bx2",OnClose,DEF,"b2");
if CrossUp(c,Var3) Then
ExitLong("bx3",OnClose,DEF,"b3");
if CrossUp(c,Var4) Then
ExitLong("bx4",OnClose,DEF,"b4");
if CrossUp(c,var5) Then
ExitLong("bx5",OnClose,DEF,"b5");
}
위 수식어는 첨부파일3 입니다.
일봉의 10일선 위, 아래에 따라 수식어를 추가하고자 합니다.
10일선 위는 Buy로 10일선 아래는 sell 입니다.
미리 감사드립니다.