커뮤니티
관심종목(선정종목) 자동매수
다음은 예스랭귀지 시스템(식) 입니다.
예스스팟으로 자동매수하도록 부탁 합니다.
계좌잔고의 1/3 매수하도록 수고 바랍니다^^
// ============================================================
// 삼성전자 자동매수 로직 (예스랭귀지 완성본)
// - 전일 종가 신호 발생 시 다음날 갭/비갭 조건에 따라 매수
// ============================================================
Inputs:
BuyDelayGapUp(0910), // 갭업 대기시간
BuyDelayGapDown(0920), // 갭다운 대기시간
NoGapBuyStart(0900), // 비갭 매수 시작 시간
NoGapBuyEnd(0915); // 비갭 매수 종료 시간
Vars:
BuySignal(false),
BuySignalDate(0),
DelayTime(0),
IsGap(false),
GapSize(0);
//--------------------------------------------
// ① 삼성전자 종목이 아니면 종료
Var: Symbol(0);
If Symbol <> 005930 Then
Begin
//--------------------------------------------
// ② 전일 종가에서 매수 신호 발생 (PhantomTrend 등 자가 지표 기반)
If CrossUp(Close, Ema(C, 20)) Then
Begin
BuySignal = True;
BuySignalDate = Date;
End;
//--------------------------------------------
// ③ 다음날 매수 준비
If BuySignal and (Date > BuySignalDate) Then
Begin
// --------------------------------------------------------
// ?? 갭 정의: GapSize = 오늘 시가 - 전일 종가
// 갭업: GapSize > 0
// 갭다운: GapSize < 0
// 비갭: Abs(GapSize) < 전일종가 * 0.001 (예: ±0.1% 이내)
// --------------------------------------------------------
GapSize = Open - Close[1];
If AbsValue(GapSize) >= Close[1] * 0.001 Then
IsGap = True; // 갭 발생
Else
IsGap = False; // 비갭
// --------------------------------------------------------
// ========== [A] 갭일 경우 ==========
If IsGap = True Then
Begin
// 갭업 / 갭다운 판단
If Open > Close[1] Then
DelayTime = BuyDelayGapUp; // 09:10
Else
DelayTime = BuyDelayGapDown; // 09:20
// 대기시간 이후
If Time >= DelayTime Then
Begin
// 가격 재확인 3조건
If (High >= High[1]) OR
(Close >= Close[1]) OR
(Low > Low[1]) Then
Begin
Buy("AutoBuy_Gap", AtMarket, Def, 0);
BuySignal = False;
BuySignalDate = 0;
End;
End;
End;
// ========== [B] 비갭일 경우 ==========
If IsGap = False Then
Begin
// 지정된 시간 구간에서만 진입 허용
If Time >= NoGapBuyStart and Time <= NoGapBuyEnd Then
Begin
// 1) 최소 09:10 이후 조건
If Time >= 0910 Then
Begin
// 2) 오늘 양봉(현재가 > 시가)일 때만 매수
If Close > Open Then
Begin
Buy("AutoBuy_NoGap", AtMarket, Def, 0);
BuySignal = False;
BuySignalDate = 0;
End;
End;
End;
End;
End; // End of BuySignal section
End; // End of Symbol <> "005930"
답변 1
예스스탁 예스스탁 답변
2025-12-18 15:46:06