커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1669
글번호 230811
답변완료
도움 요청드립니다.
안녕하세요?
아래의 수식에 SetStopTrailing 을 넣어보려구 하는데 잘안되네요...
도움부탁드립니다.
***수익(외부변수)틱 이상부터 발동, 최고점 대비 (외부변수)틱 하락시 청산.
감사합니다.
input : 익절틱수(50),손절틱수(50),진입횟수(3);
input : 매도종가차이(3),매수종가차이(3);
input : 작은이평(5),큰이평(20);
var : entry(0);
var1 = ma(c,작은이평);
var2 = ma(C,큰이평);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if VAR1 > Var2 and MarketPosition == 0 and
entry < 진입횟수 and
C[1] > O[1] and
C < O and
C == O[1]-PriceScale*매도종가차이 Then
Sell();
if VAR1 < Var2 and MarketPosition == 0 and
entry < 진입횟수 and
C[1] < O[1] and
C > O and
C == O[1]+PriceScale*매수종가차이 Then
Buy();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2022-02-20
1086
글번호 156481
답변완료
안녕하세요 수식 문의 드립니다.
1. 종목 : 오일 3분봉
2. 거래시간 : 오후 5시정각 부터 새벽 1시까지
3. 내용 : 첨부파일에서 보시듯이
- 5일선과 20일선 두개의 이평선을 씁니다.
- 첫번째 검은색 동그라미 5일선이 20일선을 넘는 골든크로스가 나올때 골든크로스가 나온 캔들 바로 다음캔들의 시가로 매수진입
- 두번째 검은색 동그라미 5일선이 20일선 밑에 있는 데드크로스가 나올때 데드크로스가 나온 캔들 바로 다음캔들의 시가로 매도 진입
4. 익절과 손절 / 스위칭
- 익절은 일단 자동으로 50틱 / 손절은 30틱인데,
- 예를 들어서 골든크로스나 나와서 매수를 들어갔는데, 자동익절과 손절이 나오지 않은 상황에서 다시 데드크로스가 나와서 매도를 들어갈때 매도 포지션으로 스위칭을 하고 싶습니다. 스위칭을 했을때도 익절 / 손절은 50 / 30입니다.
4번이 구현될수있는지 궁금하고 된다면 수식 부탁드립니다.
항상 감사드립니다. 수고하세요.
2022-02-20
1401
글번호 156480
답변완료
수식문의드립니다
안녕하세요~
현재 사용중인 수식에서 시스템이 실행된 시점부터 이 시스템 내에서 수익, 손실을 모두 합쳐
시스템의 총 손익이 제가 설정한 목표수익 이상이면 거래종료시키고 싶습니다
예를들어 목표수익이 50만원인 상황에서 시스템이 -20, -20, -20, +120 수익으로 진입청산 되었다면
4번째 거래 청산시 총 손익이 +60으로 50만원을 넘었을 때 거래종료시키고자 합니다
총손익을 계산해주는 수식은 따로 없는것 같고
거래가 끝나 청산되었을때의 진입, 청산의 틱수를 통해 계산해야할것 같은데
피라미딩까지 되어있다보니 어떻게 계산해야할지 막막하네요
아래 시스템에서 어떻게 구현해야할지 가능하다면 가르쳐주시면 감사하겠습니다!
감사합니다
-----------------
input : TT(25400), TD(20220219), MDD(200000), goalBalance(500000) ;
var : HB(14064.75), LB(13939), Hx(20000), Lx(1);
var : netBalance(0), e60(0), Hcount(0), Lcount(0),B(0),S(0),cnt(0),T1(0), Hstate(true), Lstate(true), N(0), unitP(0), exitC(0), rHB(0), rLB(0);
=> 목표수익을 goalbalance, 총손익을 netbalance라 정의
N = Highest(ATr(14), 100);
unitP = floor(MDD/(N*5*4*600));
exitC = (2-(MaxEntries-1)/2)*N;
e60 = Ema(C,60);
netbalance = ????
if netbalance >= goalbalance then
{
Hstate = false;
Lstate = false;
}
=> netbalance를 계산해 goalbalance 이상이 되면, Hstate, Lstate를 false로 바꿔 거래 정지
if Condition1 == False and sDate >= TD and sTime >= TT Then
{
Condition1 = true;
Hcount = 0;
Lcount = 0;
T1 = TotalTrades;
}
if Condition1 == true Then
{
B = 0;
S = 0;
if TotalTrades-T1 > 0 Then
{
For cnt = 1 to TotalTrades-T1
{
if MarketPosition(cnt) == 1 Then B = B+1;
if MarketPosition(cnt) == -1 Then S = S+1;
}
}
Hcount = B + IFf(MarketPosition == 1,1,0);
Lcount = S + IFf(MarketPosition == -1,1,0);
if B>0 && B == Hcount then HB = rHB;
if S>0 && S == Lcount then LB = rLB;
if MarketPosition <= 0 and Hstate == true then
{
Buy("b1",AtStop,HB,unitP);
Buy("b2",AtStop,HB+0.5*N,unitP);
Buy("b3",AtStop,HB+N,unitP);
Buy("b4",AtStop,HB+1.5*N,unitP);
}
if MarketPosition >= 0 and Lstate == true then
{
Sell("s1",AtStop,LB,unitP);
Sell("s2",AtStop,LB-0.5*N,unitP);
Sell("s3",AtStop,LB-N,unitP);
Sell("s4",AtStop,LB-1.5*N,unitP);
}
if marketposition ==1 Then
{
rHB = Highest(H, BarsSinceEntry+1) ;
if rHB < HB+0.5*N Then
Buy("b2.",AtStop,HB+0.5*N,unitP);
if rHB < HB+N Then
Buy("b3.",AtStop,HB+N,unitP);
if rHB < HB+1.5*N Then
Buy("b4.",AtStop,HB+1.5*N,unitP);
if e60 < HB+2*N Then
Exitlong("exitB1", atstop, HB-exitC);
if e60 >= HB+2*N and CrossDown(close, e60) Then
{
ExitLong("exitB2") ;
Hstate = false ;
}
Exitlong("exitB3", AtLimit, Hx);
}
if marketposition == -1 Then
{
rLB = Lowest(L, BarsSinceEntry+1);
if rLB > LB-0.5*N Then
Sell("s2.",AtStop,LB-0.5*N,unitP);
if rLB > LB-N Then
Sell("s3.",AtStop,LB-N,unitP);
if rLB > LB-1.5*N Then
Sell("s4.",AtStop,LB-1.5*N,unitP);
if e60 > LB-2*N Then
ExitShort("exitS1", atstop, LB+exitC);
if e60 <= LB-2*N and CrossUp(close, e60) Then
{
ExitShort("exitS2");
Lstate = false ;
}
exitshort("exitS3", AtLimit, Lx);
}
if Hcount >= 3 Then Hstate = False;
if Lcount >= 3 Then Lstate = False;
if H >= Hx then Hstate = false;
if L <= Lx then Lstate = false;
}
2022-02-20
1210
글번호 156479
답변완료
수정 부탁드립니다
input : pt(2.5);
var : cnt(0),TL(0);
If Index == 1 Then
{
For cnt = 1 to 300
{
TL = TL_New(sDate[1],sTime[1],2.5*cnt,sDate,sTime,2.5*cnt);
TL_SetExtRight(TL,true);
}
}
선물 챠트에 2.5포인트 단위로 표시되는 등가선인데 선이 좀 굵게 표시할수 있게 수정 부탁드립니다. 매번 도와주셔서 감사합니다.
2022-02-20
1161
글번호 156478
아트정 님에 의해서 삭제되었습니다.
2022-02-20
22
글번호 156477
답변완료
수정부탁드립니다========================
식을 간단하게 줄일수있나요?
부탇드립니다
Input : 돌파소리(0);
var : pv(0),r1(0),s1(0),r11(0),s11(0),r31(0),s31(0),r41(0),s41(0),r51(0),s51(0),r61(0),s61(0);
var : r71(0),s71(0),r81(0),s81(0),r91(0),s91(0),r101(0),s101(0);
var1 = Floor(opend(0)/2.0);
var2 = var1*2.0;
var3 = opend(0)-var2;
var4 = highest(C,dayindex+1);
var5 = lowest(C,dayindex+1);
if var3 >= 1.0 Then
pv = var2+2.0;
Else
pv = var2;
r1 = pv+1.0;
s1 = pv-1.0;
r11 = pv+2.0;
s11 = pv-2.0;
r31 = pv+3.0;
s31 = pv-3.0;
r41 = pv+4.0;
s41 = pv-4.0;
r51 = pv+5.0;
s51 = pv-5.0;
r61 = pv+6.0;
s61 = pv-6.0;
r71 = pv+7.0;
s71 = pv-7.0;
r81 = pv+8.0;
s81 = pv-8.0;
r91 = pv+9.0;
s91 = pv-9.0;
r101 = pv+10.0;
s101 = pv-10.0;
if DayHigh >= pv and pv >= DayLow Then
plot1(pv,"시초가",WHITE); Else NoPlot(1);
if DayHigh >= r1 and r1 >= DayLow Then
plot2(r1,"라인",WHITE); Else NoPlot(2);
if DayHigh >= s1 and s1 >= DayLow Then
plot3(s1,"라인",WHITE); Else NoPlot(3);
if DayHigh >= r11 and r11 >= DayLow Then
plot4(r11,"라인",WHITE); Else NoPlot(4);
if DayHigh >= s11 and s11 >= DayLow Then
plot5(s11,"라인",WHITE); Else NoPlot(5);
if DayHigh >= r31 and r31 >= DayLow Then
plot6(r31,"라인",WHITE); Else NoPlot(6);
if DayHigh >= s31 and s31 >= DayLow Then
plot7(s31,"라인",WHITE); Else NoPlot(7);
if DayHigh >= r41 and r41 >= DayLow Then
plot8(r41,"라인",WHITE); Else NoPlot(8);
if DayHigh >= s41 and s41 >= DayLow Then
plot9(s41,"라인",WHITE); Else NoPlot(9);
if DayHigh >= r51 and r51 >= DayLow Then
plot10(r51,"라인",WHITE); Else NoPlot(10);
if DayHigh >= s51 and s51 >= DayLow Then
plot11(s51,"라인",WHITE); Else NoPlot(11);
if DayHigh >= r61 and r61 >= DayLow Then
plot12(r61,"라인",WHITE); Else NoPlot(12);
if DayHigh >= s61 and s61 >= DayLow Then
plot13(s61,"라인",WHITE); Else NoPlot(13);
if DayHigh >= r71 and r71 >= DayLow Then
plot14(r71,"라인",WHITE); Else NoPlot(14);
if DayHigh >= s71 and s71 >= DayLow Then
plot15(s71,"라인",WHITE); Else NoPlot(15);
if DayHigh >= r81 and r81 >= DayLow Then
plot16(r81,"라인",WHITE); Else NoPlot(16);
if DayHigh >= s81 and s81 >= DayLow Then
plot17(s81,"라인",WHITE); Else NoPlot(17);
if DayHigh >= r91 and r91 >= DayLow Then
plot18(r91,"라인",WHITE); Else NoPlot(18);
if DayHigh >= s91 and s91 >= DayLow Then
plot19(s91); Else NoPlot(19);
if DayHigh >= r101 and r101 >= DayLow Then
plot20(r101,"라인",WHITE); Else NoPlot(20);
if DayHigh >= s101 and s101 >= DayLow Then
plot21(s101,"라인",WHITE); Else NoPlot(21);
if pv > pv[1] then {
plot34(pv, "상향돌파");
if 돌파소리 == 1 then {
PlaySound("C:₩Users₩Windows 10₩Desktop₩sound₩상30초.wav");
}
}
if pv < pv[1] then {
plot35(pv, "하향돌파");
if 돌파소리 == 1 then {
PlaySound("C:₩Users₩Windows 10₩Desktop₩sound₩하20초.wav");
}
}
// PLOT64(diver_tema,"상상승승");
// if 상하소리 == 1 then {
// PlaySound("C:₩Users₩Windows 10₩Desktop₩sound₩상30초.wav");
// }
2022-02-20
678
글번호 156476
새벽에 님에 의해서 삭제되었습니다.
2022-02-20
0
글번호 156475
2wnwn 님에 의해서 삭제되었습니다.
2022-02-19
17
글번호 156473
답변완료
수식작성 부탁드립니다
안녕하세요
ma(c,5)을 기준으로
highest(c,5)를 그래프로 만들면 오른쪽으로 5일간 최대값으로 그려지는데요
제가 만들고픈 그래프는
오늘을 기준으로 오늘 최대값이 왼쪽으로, 즉 4일 거래일 전부터 오늘의 최대값이
그려지도록
수식을 작성하고 싶습니다. 꼭 알려주세요
2022-02-19
802
글번호 156472