답변완료
문의
최초 문의를 진입필터라고 해서 혼선을 드린 것 같습니다.
특정 조건이 발생했을 때 b2 진입하는 방법을 하나 더 추가하는 건입니다.
b1 진입이 SetStopInactivity로 청산되는 경우에
b2 진입은 답변 수식처럼 진입하는 게 맞습니다.
b1 진입이 SetStopInactivity으로 청산되지 않는 경우는
b2 진입은 최초 수식대로 진입해야 합니다. 답변 수식으로는 이 때의 진입이 발생하지 않습니다.
순서도로 보자면
SetStopInactivity이 발생했을 때... b2 진입하는 방법과
SetStopInactivity이 발생하지 않을 때...b2 진입하는 방법(최초 수식)
2개가 필요합니다.
수정 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의
>
안녕하세요
예스스탁입니다.
input : b1(116);
input : b1ls(1.5),b1tr(2.7),mi1(0.5),bg1(150);
input : b2(122);
input : b2ls(2),b2tr(3.6),mi2(0),bg2(0);
var : T1(0),entry(0),LL(0),EH(0);
if Bdate != Bdate[1] Then
{
T1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and C >= daylow+PriceScale*B1 Then
buy("b1");
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and
entry == 1 and
C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 and
c<dayopen-2.5 and
IsExitName("StopInactivity",1) == true Then
buy("b2");
if MarketPosition== 1 Then
{
if IsEntryName("b1") == true Then
{
SetStopLoss(b1ls,PointStop);
SetStopTrailing(b1tr,0,PointStop,1);
SetStopInactivity(mi1,bg1,PointStop);
}
Else if IsEntryName("b2") == true Then
{
SetStopLoss(b2ls,PointStop);
SetStopTrailing(b2tr,0,PointStop,1);
SetStopInactivity(mi2,bg2,PointStop);
}
Else
{
SetStopLoss(0);
SetStopTrailing(0,0);
SetStopInactivity(0,0);
}
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 하루 2번 거래하는 수식입니다.
두번째 b2 진입에 필터를 두고 싶습니다.
필터 내용입니다.
1) b1 진입이 SetStopInactivity로 청산되면 b2 진입에 필터가 작동됩니다.
2) b2 진입은 ( c<dayopen-2.5 and b2 진입조건) 이 경우에만 허용됩니다.
항상 고맙습니다.
***************************************************************************************
input : b1(116);
input : b1ls(1.5),b1tr(2.7),mi1(0.5),bg1(150);
input : b2(122);
input : b2ls(2),b2tr(3.6),mi2(0),bg2(0);
var : T1(0),entry(0),LL(0),EH(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and C >= daylow+PriceScale*B1 Then
buy("b1");
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry == 1 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then
buy("b2");
if MarketPosition== 1 Then
{
if IsEntryName("b1") == true Then
{
SetStopLoss(b1ls,PointStop);
SetStopTrailing(b1tr,0,PointStop,1);
SetStopInactivity(mi1,bg1,PointStop);
}
Else if IsEntryName("b2") == true Then
{
SetStopLoss(b2ls,PointStop);
SetStopTrailing(b2tr,0,PointStop,1);
SetStopInactivity(mi2,bg2,PointStop);
}
Else
{
SetStopLoss(0);
SetStopTrailing(0,0);
SetStopInactivity(0,0);
}
}
2025-08-01
117
글번호 192928
시스템
답변완료
검색식 부탁 드려요
1 아래수식을 참조하여,
수식1)이 수식2)보다 위에 있는 모든종목 검색식 부탁드려요.(0봉전)
2. 캔들이(일봉) 수식1)을 양봉으로 돌파(몸통)하는 검색식
3. 캔들이(일봉) 수식2)를 양봉으로 돌파(몸통)하는 검색식 부탁드립니다
4. 캔들이 양봉으로 주봉 20이평선을 돌파(몸통)하는 검색식 부탁합니다
--------아래-----
(수식1)
tenkan=If(Sum(거래량, ConvPeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, ConvPeriod) / Sum(거래량, ConvPeriod),
(Max(고가, ConvPeriod) + Min(저가, ConvPeriod)) / 2);
(수식2)
kijun = If(Sum(거래량, BasePeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, BasePeriod) / Sum(거래량, BasePeriod),
(Max(고가, BasePeriod) + Min(저가, BasePeriod)) / 2);
(수식3)
shift(close,-25)
(수식4)
spanA = (tenkan + kijun) / 2;
//SHIFT(spanA,25)
(수식5)
spanB = tenkan=If(Sum(거래량, SpanBPeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, SpanBPeriod) / Sum(거래량, SpanBPeriod),
(Max(고가, SpanBPeriod) + Min(저가, SpanBPeriod)) / 2);
//SHIFT(spanB,25)
- 지표조건설정
ConvPeriod : 9
BasePeriod : 26
SpanBPeriod : 52
Shift : 26
2025-08-01
133
글번호 192926
종목검색
답변완료
검색식 부탁 드려요(재문의 드려요)
1. 아래수식을 참조하여(일봉기준),
주봉 20이평 (단순) 밑에서, 수식1) 이 수식2) 를 골든크로스
할때 종목검색식 부탁드려요.
누락부분 : (단, 0봉전~10봉전 모든종목)
확인 부탁드려요
--------아래-----
(수식1)
tenkan=If(Sum(거래량, ConvPeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, ConvPeriod) / Sum(거래량, ConvPeriod),
(Max(고가, ConvPeriod) + Min(저가, ConvPeriod)) / 2);
(수식2)
kijun = If(Sum(거래량, BasePeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, BasePeriod) / Sum(거래량, BasePeriod),
(Max(고가, BasePeriod) + Min(저가, BasePeriod)) / 2);
(수식3)
shift(close,-25)
(수식4)
spanA = (tenkan + kijun) / 2;
//SHIFT(spanA,25)
(수식5)
spanB = tenkan=If(Sum(거래량, SpanBPeriod) > 0,
Sum(((고가 + 저가) / 2) * 거래량, SpanBPeriod) / Sum(거래량, SpanBPeriod),
(Max(고가, SpanBPeriod) + Min(저가, SpanBPeriod)) / 2);
//SHIFT(spanB,25)
- 지표조건설정
ConvPeriod : 9
BasePeriod : 26
SpanBPeriod : 52
Shift : 26
---------------------
<보내주신 검색식>
input : ConvPeriod(9),BasePeriod(26),SpanBPeriod(52);
input : P(20);
var : tenkan(0),kijun(0);
var : cnt(0),sum(0),mav(0);
Array : CC[100](0);
tenkan=Iff(AccumN(v, ConvPeriod) > 0,
AccumN(((H + L) / 2) * v, ConvPeriod) / AccumN(v, ConvPeriod),
(highest(H, ConvPeriod) + Lowest(L, ConvPeriod)) / 2);
kijun = Iff(AccumN(V, BasePeriod) > 0,
AccumN(((H + L) / 2) * V, BasePeriod) / AccumN(V, BasePeriod),
(highest(H, BasePeriod) + Lowest(L, BasePeriod)) / 2);
if DayOfWeek(Bdate)< DayOfWeek(Bdate[1]) Then
{
for cnt = 99 downto 1
{
CC[cnt] = CC[cnt-1];
}
}
CC[0] = C;
if CC[P-1] > 0 Then
{
sum = 0;
for cnt = 0 to P-1
{
sum = sum+CC[cnt];
}
mav = sum/P;
if CrossUp(tenkan,kijun) Then
Find(1);
}
2025-08-01
139
글번호 192920
종목검색
답변완료
수식 완성 부탁드립니다.
INPUT:
Period(20), // 장기 이동평균 기간
Period1(5), // 단기 이동평균 기간
Period2(20), // 중기 이동평균 기간
A(0); // 이격률 기준값
VAR:
maShort(0), // 단기 이동평균
maMid(0), // 중기 이동평균
maLong(0), // 장기 이동평균
Disparity(0), // 이격률
EntryPrice(0), // 매수 가격 저장
TradeOpen(FALSE), // 포지션 보유 여부
CurrTime(0), // 현재 시간 (HHMM)
ProfitRate(0), // 현재 수익률 (%)
ProfitPreserveActive(FALSE); // 수익보존 활성화 여부
// 이동평균 계산
maShort = MA(C, Period1);
maMid = MA(C, Period2);
maLong = MA(C, Period);
// 이격률 계산
Disparity = (maShort - maMid) / C * 100;
// 현재 시간 구하기 (HHMM)
CurrTime = TIME;
// --- 매수 조건 (09:00 ~ 11:40) ---
IF (CurrTime >= 900) AND (CurrTime <= 1140) THEN
BEGIN
IF (TradeOpen = FALSE) AND
// 이동평균 조건 (골든크로스 예시)
(C > maLong) AND (C[1] <= maLong[1]) AND
(maMid > maMid[1]) AND
(maMid[1] < maMid[2])
AND
// 이격률 조건
(Disparity > A) AND (Disparity[1] <= A)
THEN
BEGIN
BUY;
EntryPrice = C; // 진입가 기록
TradeOpen = TRUE;
ProfitPreserveActive = FALSE; // 새 거래 시작 시 초기화
END;
END;
// --- 포지션 오픈 상태에서 익절 / 손절 / 수익보존 / 강제매도 체크 ---
IF TradeOpen = TRUE THEN
BEGIN
ProfitRate = (C - EntryPrice) / EntryPrice * 100;
// 익절: +5% 이상 도달 시 매도
IF ProfitRate >= 5 THEN
BEGIN
SELL;
TradeOpen = FALSE;
ProfitPreserveActive = FALSE;
END
// 손절: -3% 이하 도달 시 매도
ELSE IF ProfitRate <= -3 THEN
BEGIN
SELL;
TradeOpen = FALSE;
ProfitPreserveActive = FALSE;
END
ELSE
BEGIN
// 수익보존 활성화 조건: 수익률이 1.2% 이상 도달한 경우
IF ProfitPreserveActive = FALSE AND ProfitRate >= 1.2 THEN
BEGIN
ProfitPreserveActive = TRUE;
END;
// 수익보존 조건: 수익보존 활성화 후 수익률이 1.2% 미만으로 떨어지면 매도
IF (ProfitPreserveActive = TRUE) AND (ProfitRate < 1.2) THEN
BEGIN
SELL;
TradeOpen = FALSE;
ProfitPreserveActive = FALSE;
END;
// 강제 매도: 15:10에 무조건 매도
IF CurrTime = 1510 THEN
BEGIN
SELL;
TradeOpen = FALSE;
ProfitPreserveActive = FALSE;
END;
END;
END;
2025-07-31
122
글번호 192911
시스템