커뮤니티
문의 드립니다.
2026-03-17 15:40:50
226
글번호 231118
안녕하세요
ai서비스로 코딩을 하였으나 실제 매매에서 차이가 있어 문의 드립니다.
시스템 전략에서
1. 전일대비 20pt(input) 이상 갭상승 또는 갭하락으로 장시작시
2. 진입 시점에서 고점(몸통)과 저점(몸통)의 차이가 6pt(input) 이하일 때
이 두가지 조건이 모두 만족할때 진입을 금지하는 서식을 작성해 주시길 부탁드립니다.
갭상승(하락)과 변동폭이 적을때 진입을 제한하는 방식입니다.
고점과 저점은 몸통으로만 계산해주시기 바랍니다.
답변 1
김윤한 예스스탁 답변
2026-03-17 16:14:07
안녕하세요
예스스탁입니다.
input : tt(150000),당일진입횟수(3),손절(4);
input : Period(20);
Input : chkP(3), reChkP(30), stopChk(35);
input : 갭(20),고저점차이(6);
var: HH(0), LL(0), BS(0), SS(0);
var: dayChk(0);
var : TotalCount(0),PreDay(0),DayEntry(0);
var : cnt(0),sum(0),daymav(0);
#일간이평 계산
sum = 0;
for cnt = 0 to Period-1
{
sum = sum+DayClose(cnt);
}
daymav = ma(C,Period);# sum / Period;
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);
Condition1 = abs(DayOpen-DayClose(1)) >= 갭 and abs(C-O) <= 고저점차이;
if DayIndex >= chkP
# and Time < 95000
and sDate == NextBarSdate
and EntryDate(0) < Date
and EntryDate(1) < Date
and DayEntry < 당일진입횟수
and Condition1 == False
Then {
if C > daymav Then
Buy("B1", AtStop, HH);
if C < daymav Then
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 Condition1 == False Then
{
if C > daymav Then
Buy("B2", AtStop, HH);
if C < daymav Then
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);
}
SetStopLoss(손절,PointStop);
SetStopEndofday(151500);
즐거운 하루되세요
다음글
이전글