예스스탁
예스스탁 답변
2025-01-02 15:24:25
안녕하세요
예스스탁입니다.
1
당일청산시간은 장종료시간으로 지정하시면 안됩니다.
장종료시간으로 지정하시면 이미 장이 종료된 이후가 됩니다.
장종료시간 몇분전으로 지정하셔야 합니다.
2
아래 수식에 시간제한, 당일청산, 당일봉번호등은 해외선물에 맞게 수정했습니다.
수식에 Time < 95000와 같이 국내 기준으로 지정된 내용들은
확인하시고 원하시는 시간으로 변경하셔야 합니다.
3
input : StartTime(093000),EndTime(065500);
input: tt(150000);
var: chkP(5), reChkP(10), stopChk(20);
var: HH(0), LL(0), BS(0), SS(0);
var: dayChk(0);
var : Tcond(False),ii(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if BarIndex == 0 then ClearDebug();
if bdate !=Bdate[1] Then
ii = 0;
Else
ii = ii +1;
if ii == chkP then
{
HH = Highest(Max(C,O), chkP+1);
LL = Lowest(Min(C,O), chkP+1);
#if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL);
}
#if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High);
if Tcond == true and
ii >= chkP
and Time < 95000
and sDate == NextBarSdate
and EntryDate(0) < Date
and EntryDate(1) < Date
Then {
Buy("B1", AtStop, HH);
Sell("S1", AtStop, LL);
}
//if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then {
// messageLog("HH %.2f, High: %.2f", HH, High);
// dayChk = 1;
//}
if ExitDate(1) == Date and Time < 150000 and Tcond == true
// and LatestEntryName(1) != "B2"
// and LatestEntryName(1) != "S2"
// and LatestEntryName(0) != "B2"
// and LatestEntryName(0) != "S2"
Then {
if ii < reChkP Then {
HH = Highest(Max(C,O), ii+1);
LL = Lowest(Min(C,O), ii+1);
}
Else {
HH = Highest(Max(C,O), reChkP);
LL = Lowest(Min(C,O), reChkP);
}
Buy("B2", AtStop, HH);
Sell("S2", AtStop, LL);
}
if (MarketPosition == 1) Then {
if ii < stopChk Then {
BS = Lowest(Min(C,O), ii+1);
}
Else {
BS = Lowest(Min(C,O), stopChk);
}
ExitLong("EL", AtStop, BS);
}
if (MarketPosition == -1) Then {
if ii < stopChk Then {
SS = Highest(Max(C,O), ii+1);
}
Else {
SS = Highest(Max(C,O), stopChk);
}
#messageLog(" SS %.2f", SS);
ExitShort("ES", AtStop, SS);
}
즐거운 하루되세요
> 가자아이 님이 쓴 글입니다.
> 제목 : 시스템 서식 부탁드립니다.
> 안녕하세요
항상 감사드립니다.
미국의 선물 거래를 위한 시스템입니다.
아래의 서식에서 추가 조건을 넣어주시면 감사하겠습니다.
한국투자증권 이글로벌 예스트레이너를 사용중입니다.
추가조건
1. 매일 미국 시간 기준 09:30분 부터 시작
2. 매일 청산 (미국 시간기준 07:00)
*선물에 따라 시간은 제가 유동적을 변경하면서 사용 예정
*5분봉 기준
input: tt(150000);
var: chkP(5), reChkP(10), stopChk(20);
var: HH(0), LL(0), BS(0), SS(0);
var: dayChk(0);
if BarIndex == 0 then ClearDebug();
if dayindex == chkP then {
HH = Highest(Max(C,O), chkP+1);
LL = Lowest(Min(C,O), chkP+1);
#if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL);
}
#if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High);
if DayIndex >= chkP
and Time < 95000
and sDate == NextBarSdate
and EntryDate(0) < Date
and EntryDate(1) < Date
Then {
Buy("B1", AtStop, HH);
Sell("S1", AtStop, LL);
}
//if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then {
// messageLog("HH %.2f, High: %.2f", HH, High);
// dayChk = 1;
//}
if ExitDate(1) == Date
and Time < 150000
// and LatestEntryName(1) != "B2"
// and LatestEntryName(1) != "S2"
// and LatestEntryName(0) != "B2"
// and LatestEntryName(0) != "S2"
Then {
if DayIndex < reChkP Then {
HH = Highest(Max(C,O), DayIndex+1);
LL = Lowest(Min(C,O), DayIndex+1);
}
Else {
HH = Highest(Max(C,O), reChkP);
LL = Lowest(Min(C,O), reChkP);
}
Buy("B2", AtStop, HH);
Sell("S2", AtStop, LL);
}
if (MarketPosition == 1) Then {
if DayIndex < stopChk Then {
BS = Lowest(Min(C,O), DayIndex+1);
}
Else {
BS = Lowest(Min(C,O), stopChk);
}
ExitLong("EL", AtStop, BS);
}
if (MarketPosition == -1) Then {
if DayIndex < stopChk Then {
SS = Highest(Max(C,O), DayIndex+1);
}
Else {
SS = Highest(Max(C,O), stopChk);
}
#messageLog(" SS %.2f", SS);
ExitShort("ES", AtStop, SS);
}
SetStopEndofday();