예스스탁
예스스탁 답변
2021-05-07 13:54:07
안녕하세요
예스스탁입니다.
input : 완전청산 (50);
input : 손절1(65),손절2(100),고점대비(100);
var : T1(0),T2(0);
#var : tX(0),BH(0),SH(0);
var : T21(0),T26(0),T23(0),T24(0),T25(0);
var : T11(0),T22(0),T33(0),T44(0),T55(0);
var : Tcond(false); # 시간제한
var : mav1(0),mav2(0),Lcnt(0),Hcnt(0),BH(0),SL(0);
var : T(0),S(0),idx(0),entry2(False); # 딱 한번 매매
var1 = ma(c,0);
var2 = ma(C,0);
var3 = ma(C,0);
var4 = ma(c,0);
if (sdate != sdate[1] and stime >= 101600) or
(sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then
{
Tcond = true;
idx = 0;
entry2 = true;
}
idx = idx+1;
if (sdate != sdate[1] and stime >= 172000) or
(sdate == sdate[1] and stime >= 172000 and stime[1] < 172000) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if idx <= 10 then
{
if MarketPosition != 0 and MarketPosition != MarketPosition[1] and
(IsEntryName("매수1") == true or IsEntryName("매도1") == true) Then
entry2 = False;
}
if var1 > var2 and var1 > var3 and var1 > var4 and var4 > var2 Then
T1 = 1;
if var1 < var2 and var1 < var3 and var1 < var4 and var4 < var2 Then
T1 = -1;
var5 = ma(C,30);
if CrossUp(C,var5) Then
{
T = 1;
S = 0;
}
if CrossDown(C,var5) Then
{
T = -1;
S = 0;
}
if Tcond == true then
{
if T1 == 1 and T1[1] == -1 Then
buy("매수1");
if T1 == -1 and T1[1] == 1 Then
sell("매도1");
if T == 1 Then
{
S = S+1;
if idx >= 10 and S == 10 Then
{
if entry2 == true Then
{
Buy("매수2");
}
Entry2 = False;
}
}
if T == -1 Then
{
S = S+1;
if idx >= 10 and S == 10 then
{
if entry2 == true Then
{
Sell("매도2");
}
entry2 = False;
}
}
}
if MarketPosition == 1 Then
{
ExitLong("bx5",AtLimit,EntryPrice+PriceScale*완전청산,"",5,1);
ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절1,"매수1");
ExitLong("bl2",AtStop,EntryPrice-PriceScale*손절2,"매수2");
ExitLong("btr",AtStop,Highest(H,BarsSinceEntry)-PriceScale*고점대비);
}
Else
Lcnt = 0;
if MarketPosition == -1 Then
{
ExitShort("sx5",AtLimit,EntryPrice-PriceScale*완전청산,"",5,1);
ExitShort("sl1",AtStop,EntryPrice+PriceScale*손절1,"매도1");
ExitShort("sl2",AtStop,EntryPrice+PriceScale*손절2,"매도2");
ExitShort("str",AtStop,lowest(L,BarsSinceEntry)+PriceScale*고점대비);
}
Else
Hcnt = 0;
즐거운 하루되세요
> kjdkdh 님이 쓴 글입니다.
> 제목 : 손절식 추가요
> 안녕하세요
늘 감사합니다
아래식에서요
매수1 매도1 는 손절 65틱
매수2 매도2 는 손절 100틱 수정좀 부탁합니다
그리고 모든신호진입해서 고점대비 100틱 이상 내령오면 진입청산 좀 추가해주세요
외부 변수로 부탁합니다
input : 완전청산 (50);
input : 손절가 (15);
var : T1(0),T2(0);
#var : tX(0),BH(0),SH(0);
var : T21(0),T26(0),T23(0),T24(0),T25(0);
var : T11(0),T22(0),T33(0),T44(0),T55(0);
var : Tcond(false); # 시간제한
var : mav1(0),mav2(0),Lcnt(0),Hcnt(0),BH(0),SL(0);
var : T(0),S(0),idx(0),entry2(False); # 딱 한번 매매
var1 = ma(c,0);
var2 = ma(C,0);
var3 = ma(C,0);
var4 = ma(c,0);
if (sdate != sdate[1] and stime >= 101600) or
(sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then
{
Tcond = true;
idx = 0;
entry2 = true;
}
idx = idx+1;
if (sdate != sdate[1] and stime >= 172000) or
(sdate == sdate[1] and stime >= 172000 and stime[1] < 172000) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if idx <= 10 then
{
if MarketPosition != 0 and MarketPosition != MarketPosition[1] and
(IsEntryName("매수1") == true or IsEntryName("매도1") == true) Then
entry2 = False;
}
if var1 > var2 and var1 > var3 and var1 > var4 and var4 > var2 Then
T1 = 1;
if var1 < var2 and var1 < var3 and var1 < var4 and var4 < var2 Then
T1 = -1;
var5 = ma(C,30);
if CrossUp(C,var5) Then
{
T = 1;
S = 0;
}
if CrossDown(C,var5) Then
{
T = -1;
S = 0;
}
if Tcond == true then
{
if T1 == 1 and T1[1] == -1 Then
buy("매수1");
if T1 == -1 and T1[1] == 1 Then
sell("매도1");
if T == 1 Then
{
S = S+1;
if idx >= 10 and S == 10 Then
{
if entry2 == true Then
{
Buy("매수2");
}
Entry2 = False;
}
}
if T == -1 Then
{
S = S+1;
if idx >= 10 and S == 10 then
{
if entry2 == true Then
{
Sell("매도2");
}
entry2 = False;
}
}
}
if MarketPosition == 1 Then
{
ExitLong("bx5",AtLimit,EntryPrice+PriceScale*완전청산,"",5,1);
ExitLong("bx6",AtStop,EntryPrice-PriceScale*손절가,"",5,1);
}
Else
Lcnt = 0;
if MarketPosition == -1 Then
{
ExitShort("sx5",AtLimit,EntryPrice-PriceScale*완전청산,"",5,1);
ExitShort("sx6",AtStop,EntryPrice+PriceScale*손절가,"",5,1);
}
Else
Hcnt = 0;