예스스탁
예스스탁 답변
2025-06-18 12:43:01
안녕하세요
예스스탁입니다.
# KOSPI 선물 10분봉
input : 당일진입횟수(3);
Input : chkP(3), reChkP(10), stopChk(20);
input : 최저폭(5),최고폭(10);
input : xtime(140000),이전감소(10),이후감소(5);
input : 최소수익(20),감소(5);
var: HH(0), LL(0), BS(0), SS(0);
var: dayChk(0);
var : TotalCount(0),PreDay(0),DayEntry(0);
TotalCount = TotalTrades;
if Bdate != Bdate[1] Then
PreDay = TotalCount[1];
DayEntry = (TotalCount-PreDay)+IFF(MarketPosition != 0,1,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
and DayEntry < 당일진입횟수
and HH-LL >= 최저폭 and HH-LL <= 최고폭
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);
}
if DayEntry < 당일진입횟수 and HH-LL >= 최저폭 and HH-LL <= 최고폭 Then
{
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 sTime < xtime Then
ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)-이전감소);
Else
ExitLong("bx2",AtStop,highest(H,BarsSinceEntry)-이후감소);
if highest(H,BarsSinceEntry) >= EntryPrice+최소수익 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-감소);
}
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);
if sTime < xtime Then
ExitShort("sx1",AtStop,lowest(L,BarsSinceEntry)+이전감소);
Else
ExitShort("sx2",AtStop,lowest(L,BarsSinceEntry)+이후감소);
if lowest(L,BarsSinceEntry) <= EntryPrice-최소수익 Then
ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)+감소);
}
var : month(0),nday(0),week(0),X(False);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
#만기일
if (month%3 == 0 and nday >= 8 and nday <= 14 and week == 4) then
{
X = true;
SetStopEndofday(151500);
}
Else#만기일아닐때
{
X = False;
SetStopEndofday(152000);
}
즐거운 하루되세요
> 가자아이 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요
항상 감사드립니다.
아래의 서식에서 추가 서식 부탁드립니다.
*진입조건추가
1.진입시 최고가와 최저가의 차이가 5포인트 이상, 10포인트 이하일때만 진입
5pt < 진입 < 10pt (input)
*청산조건추가
1. 2시 이전: 최고가 대비 10포인트 하락시 전량 손절 청산 (input)
2. 2시 이후: 최고가 대비 5포인트 하락시 전량 손절 청산 (input)
3. 시간에 관계없이 20포인트 이상 수익중 일때 최고가 대비 5포인트 하락시 전량 청산 (INPUT)
*청산된 이후에는 진입횟수 이내에서 재진입가능
모두 최적화를 위해 input에 넣어주세요
감사합니다.
# KOSPI 선물 10분봉
input: 당일진입횟수(3);
Input: chkP(3), reChkP(10), stopChk(20);
var: HH(0), LL(0), BS(0), SS(0);
var: dayChk(0);
var : TotalCount(0),PreDay(0),DayEntry(0);
TotalCount = TotalTrades;
if Bdate != Bdate[1] Then
PreDay = TotalCount[1];
DayEntry = (TotalCount-PreDay)+IFF(MarketPosition != 0,1,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
and DayEntry < 당일진입횟수
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);
}
if DayEntry < 당일진입횟수 Then
{
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);
}
var : month(0),nday(0),week(0),X(False);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
#만기일
if (month%3 == 0 and nday >= 8 and nday <= 14 and week == 4) then
{
X = true;
SetStopEndofday(151500);
}
Else#만기일아닐때
{
X = False;
SetStopEndofday(152000);
}