커뮤니티
문의 드립니다.
2026-03-17 15:40:50
48
글번호 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);
즐거운 하루되세요
다음글
이전글