커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4478
글번호 230811
답변완료
파라볼릭 청산 수식 추가 부탁해요~~
아래 청산 수식에 추가로 넣을려고 하는데요...
아래 매수 청산 또는 파라볼릭이 매도로 전환신호시 매수 청산하는 수식을 첨가하고 싶어요..
매수 청산: (아래 기존 청산수식) or (파라볼릭 매도신호시 청산)
매도 청산: (저 아래 기존 매도 청산수식) or (파라볼릭 매수 신호시 청산)
제 의도는 아래 청산 수식 외 파라볼릭 매도신호시에도 매수청산이 될수 있게 하려구요...
부탁드려요~~
if MarketPosition == 1 then{
SetStopProfittarget(PriceScale*익절1, PointStop);
SetStopLoss(PriceScale*손절1, PointStop);
}
if MarketPosition == -1 then{
SetStopProfittarget(PriceScale*익절2, PointStop);
SetStopLoss(PriceScale*손절2, PointStop);
}
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*고점청산1 Then
ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*고점청산1);
Else
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*매수1차상승 Then
ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*본전1);
Else
ExitLong("손절1",AtStop,EntryPrice-PriceScale*매수손절);
}
}
===============================================================================
input : p1(2),p2(1),af(0.02), maxAF(0.2);
input : 익절1(50),익절2(40),손절1(50),손절2(50);
input : 매수1차상승(30),매도1차상승(30),매수손절(100),매도손절(100);
input : N1(1),N2(100);
Input :N3(25),N4(25),매수제한(0.25),매도제한(0.25);
Input :청산시간(060000);
Input :본전1(-25),본전2(-9);
Input :고점청산1(65),고점청산2(60);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0),value(0);
var : sum3(0),Tcond(false);
var1 = CSar(af,maxAF);
Var4 = highest(H,N3);
Var5 = lowest(L,N3);
var1 = CSar(af,maxAF);
Var6 = highest(H,N4);
Var7 = lowest(L,N4);
if DayClose(N2) > 0 Then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to N2-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
}
avg1 = sum1/N1;
avg2 = sum2/N2;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
if var1 > C Then
{
value1 = index;
value2 = C;
}
If var1 < C Then
{
value3 = index;
value4 = C;
}
#매수
if MarketPosition == 0 and
T == 1 and
index >= value1+P1 and
C > highest(H,P1)[1] and
C <= Var4-(Var4-Var5)*매수제한 and
C > value2 then
buy("매수",OnClose,def,1);
#매도
if MarketPosition == 0 and
T == -1 and
index >= value3+P2 and
C < Lowest(L,P2)[1] and
C >= Var7+(Var6-Var7)*매도제한 and
C < value4 then
Sell("매도",OnClose,def,1);
if MarketPosition == 1 then{
SetStopProfittarget(PriceScale*익절1, PointStop);
SetStopLoss(PriceScale*손절1, PointStop);
}
if MarketPosition == -1 then{
SetStopProfittarget(PriceScale*익절2, PointStop);
SetStopLoss(PriceScale*손절2, PointStop);
}
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*고점청산1 Then
ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*고점청산1);
Else
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*매수1차상승 Then
ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*본전1);
Else
ExitLong("손절1",AtStop,EntryPrice-PriceScale*매수손절);
}
}
if MarketPosition == -1 Then
{
If Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*고점청산2 Then
ExitShort("최고점즉시청산2",AtStop,EntryPrice+PriceScale*고점청산2);
Else
{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*매도1차상승 Then
ExitShort("약손실청산2",AtStop,EntryPrice-PriceScale*본전2);
Else
ExitShort("손절2",AtStop,EntryPrice+PriceScale*매도손절);
}
}
}
if stime == 060000 Then{
exitlong("당일청산1");
ExitShort("당일청산2");
}
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최고점바로청산1 Then
ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*최고점바로청산1);
Else
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*매수후수익날랑말랑한틱수 Then
ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*본전틱수1);
Else
ExitLong("가슴아픈손절1",AtStop,EntryPrice-PriceScale*매수진입후아예빠져서손절날틱수);
}
}
if MarketPosition == -1 Then
{
If Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최고점바로청산2 Then
ExitShort("최고점즉시청산2",AtStop,EntryPrice+PriceScale*최고점바로청산2);
Else
{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*매도후수익날랑말랑한틱수 Then
ExitShort("약손실청산2",AtStop,EntryPrice-PriceScale*본전틱수2);
Else
ExitShort("가슴찢어지는손절",AtStop,EntryPrice+PriceScale*매도진입한후아예빠져서손절날틱수);
}
}
}
if stime == 청산시간 Then{
exitlong("당일청산1");
ExitShort("당일청산2");
}
2019-01-11
191
글번호 125171
답변완료
수식 부탁드립니다.
2019-01-11
209
글번호 125170
답변완료
재검토 부탁드립니다
며칠전 작성해주신 수식으로 시뮬레이션 해봤는데
제가 피라미딩 세팅을 잘못해서 그런지
매매신호가 거의 나오지 않네요..
참고로, 1분봉 챠트에서 아래의 수식으로 시뮬을 돌려봤습니다.
다시한번 재검토 부탁드립니다. 좋은 하루 되세요
=================================================
input : 매수금액(10000000);
if crossup(c,DayClose(1)) then
buy("b1",OnClose,def,Floor((매수금액*0.4)/c));
if crossup(c,DayHigh(1)) then
buy("b2",OnClose,def,Floor((매수금액*0.6)/c));
if MarketPosition == 1 and NextBarSdate != sdate then
{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "b1" Then
{
var1 = CurrentContracts-CurrentContracts[1];
var2 = Floor(var1*0.4);
var3 = var1-var2;
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "b2" Then
{
var4 = CurrentContracts-CurrentContracts[1];
var5 = Floor(var4*0.4);
var6 = var4-var5;
}
ExitLong("bx11",OnClose,def,"b1",var2,1);
ExitLong("bx12",AtMarket,def,"b1",var3,1);
ExitLong("bx21",OnClose,def,"b2",var5,1);
ExitLong("bx22",AtMarket,def,"b2",var6,1);
}
즐거운 하루되세요
> 야구르트 님이 쓴 글입니다.
> 제목 : 질문있습니다
> 시스템 공부차원에서 문의드립니다.
조건은 다음과 같습니다.
1분봉 챠트에서
1번조건 : 현재가가 전일 종가 돌파시 계좌금액의 40% 매수후 당일 종가에 40% 매도
(장 마감후 신호 발생만 되게 해주시면 됩니다. )
다음날 시가에 나머지 60% 매도
2번조건: 현재가가 전일 고가 돌파시 계좌금액의 나머지(60%) 매수후 당일 종가에 40% 매도
(장 마감후 신호 발생만 되게 해주시면 됩니다. )
다음날 시가에 나머지 60% 매도
분할 매수. 분할 청산할 경우 결과가 어떻게 되는지 보고싶어서
도움 부탁드립니다.
2019-01-11
190
글번호 125168
답변완료
예스스팟 사용합니다. 선물호가창 이벤트 알려주세요
선물연결지수에서 현재가격 변동 말구여
호가창변동 이벤트는 어떤걸 사용해야 하나요?
2019-01-11
195
글번호 125164
답변완료
함수요청
안녕하세요??
해외선물 항셍지수선물 5분봉으로 거래를 하고자 하는데
진입 이후에 n번째 완성봉 평가가 손실구간이면 n+1번째 손절하는 함수를 추가하고 싶습니다.
아래의 각 수식을 요청드립니다.
1. n번째 봉에서 손실이면 n+1 봉 시가에 청산하고자 합니다.
2. n번째 봉에서 손실이면 n+1 봉 종가에 청산하고자 합니다.
2019-01-11
190
글번호 125161
답변완료
피보나치 자동시간설정
input : 시작날짜(2019010),시작시간(090000);
input : 끝날짜(20190111),끝시간(154500);
이것으로 피보나치선을 자동으로 그리고 싶습니다
1.고가에서 저가 피보나치
2.저가에서 고가 피보나치
둘다 부탁드립니다
2019-01-11
266
글번호 125158
답변완료
3일간 평균 매매 방식
3일간 최고가와 최저가를 3등분 하여
상위 등급에적용하는 로직A
중간에 적용하는 로직B
하단에 적용하는 로직C
형태좀 부탁드립니다
즉 상단에 A로직
중간에 B로직
하단에 C로직
형태좀 부탁드립니다.
좋은 주말 되십시요
2019-01-11
192
글번호 125157
답변완료
사용하고 있는 수식에서 진입시간-청산시간을 반영하고 싶어요
기본 전제는 당일 청산입니다. (해외 선물 )
진입가능시간: 8:30분 부터 다음날 새벽 4시까지
진입된후 6시까지 청산되지 않으면 새벽 6시에 강제 청산하는 식을 아래식에 반영 부탁합니다.
참고로 맨마지막에 6시 청산 수식이 있는데 실제로는 6시에 청산이 안되요..ㅠㅠ
=========================================================
input : p1(2),p2(1),af(0.02), maxAF(0.2);
input : p1(2),p2(1),af(0.02), maxAF(0.2);
input : 익절1(50),익절2(40),손절1(50),손절2(50);
input : 매수1차상승(30),매도1차상승(30),매수손절(100),매도손절(100);
input : N1(1),N2(100);
Input :N3(25),N4(25),매수제한(0.25),매도제한(0.25);
Input :청산시간(060000);
Input :본전1(-25),본전2(-9);
Input :고점청산1(65),고점청산2(60);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),avg3(0),T(0),mav2(0),mav3(0),value(0);
var : sum3(0),Tcond(false);
var1 = CSar(af,maxAF);
Var4 = highest(H,N3);
Var5 = lowest(L,N3);
var1 = CSar(af,maxAF);
Var6 = highest(H,N4);
Var7 = lowest(L,N4);
if DayClose(N2) > 0 Then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to N2-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
}
avg1 = sum1/N1;
avg2 = sum2/N2;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
if var1 > C Then
{
value1 = index;
value2 = C;
}
If var1 < C Then
{
value3 = index;
value4 = C;
}
#매수
if MarketPosition == 0 and
T == 1 and
index >= value1+P1 and
C > highest(H,P1)[1] and
C <= Var4-(Var4-Var5)*매수제한 and
C > value2 then
buy("매수",OnClose,def,1);
#매도
if MarketPosition == 0 and
T == -1 and
index >= value3+P2 and
C < Lowest(L,P2)[1] and
C >= Var7+(Var6-Var7)*매도제한 and
C < value4 then
Sell("매도",OnClose,def,1);
if MarketPosition == 1 then{
SetStopProfittarget(PriceScale*익절1, PointStop);
SetStopLoss(PriceScale*손절1, PointStop);
}
if MarketPosition == -1 then{
SetStopProfittarget(PriceScale*익절2, PointStop);
SetStopLoss(PriceScale*손절2, PointStop);
}
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*고점청산1 Then
ExitLong("최고점즉시청산1",AtLimit,EntryPrice+PriceScale*고점청산1);
Else
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*매수1차상승 Then
ExitLong("약손실청산1",AtStop,EntryPrice+PriceScale*본전1);
Else
ExitLong("손절1",AtStop,EntryPrice-PriceScale*매수손절);
}
}
if MarketPosition == -1 Then
{
If Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*고점청산2 Then
ExitShort("최고점즉시청산2",AtStop,EntryPrice+PriceScale*고점청산2);
Else
{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*매도1차상승 Then
ExitShort("약손실청산2",AtStop,EntryPrice-PriceScale*본전2);
Else
ExitShort("손절2",AtStop,EntryPrice+PriceScale*매도손절);
}
}
}
if stime == 060000 Then{
exitlong("당일청산1");
ExitShort("당일청산2");
}
2019-01-11
172
글번호 125156
답변완료
수정부탁합니다
if MarketPosition == 1 and C >= EntryPrice *(1+5/100) Then
exitlong("bx+5%",AtStop,highest(H,BarsSinceEntry)-0,"",Floor(CurrentContracts*0.3),1);
if MarketPosition == -1 and C <= EntryPrice *(1-5/100) Then
ExitShort("sx-5%",AtStop,Lowest(L,BarsSinceEntry)+0,"",Floor(CurrentContracts*0.3),1);
위수식 수정부탁합니다.
(위수식은 5% 수익시 30% 종가 이익실현 입니다.)
매수는 5% 수익후 And 20일이평선하항돌파시 30%를 이익실현한다 로 부탁 합니다.
매도는 반대
감사합니다.
2019-01-11
166
글번호 125155