커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1425
글번호 230811
회원 님에 의해서 삭제되었습니다.
2024-07-29
152
글번호 178108
회원 님에 의해서 삭제되었습니다.
2024-04-01
23
글번호 178107
답변완료
피라미딩 브레이큰스탑
안녕하세요 항상 도움 주셔서 감사합니다.
아래는 피라미딩 수식입니다.
///////////////////////////////////////피라미딩 전략////////////////////////
Input : asset(100000000),XT1(150000);
var : PP(0), R1(0);
var : LV(0);
PP = (DayHigh(1)+DayLow(1)+DayClose(1))/3; # 피벗기준선
R1 = PP * 2 - DayLow(1); # 피벗1차저항
LV = (DayHigh(1)-DayLow(1))/3; #손절폭
If Bdate[1]!=Bdate Then
{
Value68=0;
Value69=0;
Value67=0;
}
If ExitName(1)=="StopLoss" && MarketPosition==1 && CurrentEntries[1]>CurrentEntries Then
Value68=1;
If MarketPosition==0 && entriestoday<1 Then // entriestoday는 거래횟수 사용자함수.
{
Buy("",AtStop,R1,Max(int(E_num(LV,asset,0.01)/20),1));
}
If CurrentEntries[1]!=CurrentEntries Then
Value67=Value67+1;
If MarketPosition==1 && CurrentEntries<Min(E_num(LV,asset,0.01),20) && Value67<Min(E_num(LV,asset,0.01),20) && Value68==0 Then
Buy("매수1",AtStop,Highest(H,BarsSinceEntry+1)+PriceScale,Max(int(E_num(LV,asset,0.01)/20),1));
SetStopLoss(LV,PointStop);
If NextBarStime==XT1 Then
ExitLong();
/////////////////////////////////////////////////////////////////////////////
여기서 E_num 은 자금관리 사용자 함수로서, 진입 때마다 계약수가 다르게 설정됩니다.
*E_num 사용자 수식 :
Inputs: N(NumericSimple), Capital(NumericSimple), LossRatio(NumericSimple) ;
E_num = Int( (Capital * LossRatio) / (N * BigPointValue) );
///////////////////////////////////////////////////////////////////
궁금한 점은 각 포지션마다 손절 되게끔 setstoploss 를 걸어놨는데, 또 각 포지션마다 브레이큰스탑도 가능하게 하고 싶습니다. 그 브레이큰의 조건은 다음과 같습니다.
////////////////////////////////////////////////////////////////////////
If MarketPosition==1 && Highest(H,BarsSinceEntry+1)>EntryPrice+LV*3 Then
ExitLong("브레이큰",AtStop,EntryPrice);
/////////////////////////////////////////////////////////////////////////
이게 단일 포지션 거래 때는 잘 작동되지만, 피라미딩 때는 초기 진입가격에 대한 브레이큰 스탑만 적용됩니다.
각각의 포지션 별로 브레이큰 스탑을 하는 방법을 여쭙고 싶습니다.
항상 도움 주셔서 감사합니다. 건강조심하세요
2024-03-31
439
글번호 178106
회원 님에 의해서 삭제되었습니다.
2024-03-31
16
글번호 178105
답변완료
글 알림을 세로로 나오게 해주세요
var : tx(0),편차청산(0);
if 편차청산>150 and 편차청산<편차청산[비교봉] and DayHigh>DayHigh[1] Then {
tx = Text_New(sDate,sTime,l,"고점청산+반대진입");
Text_SetStyle(tx,2,5);
Text_SetSize(tx,22);
Text_SetBold(tx,1);
Text_SetColor(tx,cyan);
}
고점청산+반대진입 글알림이 가로로나오는데
저것을 새로로 나오게수정해주세요. 감사합니다.
2024-03-31
642
글번호 178103
답변완료
강조 추세선 부탁 드립니다.
안녕 하세요
Input : Period(20), MultiD1(1), MultiD2(2), MultiD3(3);
var : MAv(0),BBup1(0),BBdn1(0),BBup2(0),BBdn2(0),BBup3(0),BBdn3(0);
MAv = ma(C,Period);
BBup1 = BollBandUp(Period,MultiD1);
BBdn1 = BollBandDown(Period,MultiD1);
BBup2 = BollBandUp(Period,MultiD2);
BBdn2 = BollBandDown(Period,MultiD2);
BBup3 = BollBandUp(Period,MultiD3);
BBdn3 = BollBandDown(Period,MultiD3);
Plot1(MAv, "이평");
Plot2(BBup1, "상단밴드1");
Plot3(BBdn1, "하단밴드1");
Plot4(BBup2, "상단밴드2");
Plot5(BBdn2, "하단밴드2");
Plot6(BBup3, "상단밴드3");
Plot7(BBdn3, "하단밴드3");
안녕하세요
예스스탁입니다.
===================================================================
1 강조식
input : MaPeriod(6),MaPeriod2(2);
var : maOpen(0),maClose(0),maLow(0),maHigh(0);
var : haOpen(0),haClose(0),haLow(0),haHigh(0);
var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer4(0),ExtMapBuffer3(0),ExtMapBuffer2(0),ExtMapBuffer1(0);
var : ExtMapBuffer7(0),ExtMapBuffer8(0);
var : r(0),g(0),b(0);
if Index == 0 Then
{
maOpen=Open;
maClose=Close;
maLow=Low;
maHigh=High;
}
Else
{
maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;
maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;
maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;
maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;
haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=Max(maHigh, Max(haOpen, haClose));
haLow=Min(maLow, Min(haOpen, haClose));
if (haOpen<haClose) then
{
r=0;
g=191;
b=255;
ExtMapBuffer7=haLow;
ExtMapBuffer8=haHigh;
}
else
{
r=255;
g=10;
b=0;
ExtMapBuffer7=haHigh;
ExtMapBuffer8=haLow;
}
ExtMapBuffer5=haOpen;
ExtMapBuffer6=haClose;
ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);
ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);
ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);
ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);
}
PlotPaintBar(ExtMapBuffer2,ExtMapBuffer1,ExtMapBuffer3,ExtMapBuffer4,"강조",Rgb(r,g,b));
2 시스템
input : MaPeriod(6),MaPeriod2(2);
var : maOpen(0),maClose(0),maLow(0),maHigh(0);
var : haOpen(0),haClose(0),haLow(0),haHigh(0);
var : ExtMapBuffer5(0),ExtMapBuffer6(0),ExtMapBuffer4(0),ExtMapBuffer3(0),ExtMapBuffer2(0),ExtMapBuffer1(0);
var : ExtMapBuffer7(0),ExtMapBuffer8(0);
var : r(0),g(0),b(0),short(False),long(False);
if Index == 0 Then
{
maOpen=Open;
maClose=Close;
maLow=Low;
maHigh=High;
}
Else
{
maOpen=(maOpen[1]*(MAperiod-1)+Open)/MAPeriod;
maClose=(maClose[1]*(MAperiod-1)+Close)/MAPeriod;
maLow=(maLow[1]*(MAperiod-1)+Low)/MAPeriod;
maHigh=(maHigh[1]*(MAperiod-1)+High)/MAPeriod;
haOpen=(ExtMapBuffer5[1]+ExtMapBuffer6[1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=Max(maHigh, Max(haOpen, haClose));
haLow=Min(maLow, Min(haOpen, haClose));
if (haOpen<haClose) then
{
r=0;
g=191;
b=255;
ExtMapBuffer7=haLow;
ExtMapBuffer8=haHigh;
}
else
{
r=255;
g=10;
b=0;
ExtMapBuffer7=haHigh;
ExtMapBuffer8=haLow;
}
ExtMapBuffer5=haOpen;
ExtMapBuffer6=haClose;
ExtMapBuffer1=WMA(ExtMapBuffer7,MAperiod2);
ExtMapBuffer2=WMA(ExtMapBuffer8,MAperiod2);
ExtMapBuffer3=WMA(ExtMapBuffer5,MAperiod2);
ExtMapBuffer4=WMA(ExtMapBuffer6,MAperiod2);
}
short = ExtMapBuffer7[1]>ExtMapBuffer8[1] and ExtMapBuffer7[2]<ExtMapBuffer8[2] and ExtMapBuffer7[0]>ExtMapBuffer8[0];
long = ExtMapBuffer7[1]<ExtMapBuffer8[1] and ExtMapBuffer7[2]>ExtMapBuffer8[2] and ExtMapBuffer7[0]<ExtMapBuffer8[0];
if long Then
Buy();
if short Then
Sell();
즐거운 하루되세요
> 흑수돌 님이 쓴 글입니다.
> 제목 : 수식 문의
> 아래 지표는 하캔아쉬 지표를 더욱 스무드하게 만든 지표 입니다..
아래 수식을 예트로 변환하고 싶습니다.
링크 첨부 해 드립니다.
여러 회원님들도 도움 되시기 바랍니다.
이미 문의하신 회원님 계실 수 있겠는데
찾을 수가 없어 다시 문의 드립니다.
부탁좀 드리겠습니다. 감사합니다
==============================================
아래 두식을 한로직에 같이 쓸수 없나요?
따로 따로 쓸려니가 불편해서요
input : N(10), per1(23.6),per2(38.2),per3(50.0),per4(61.8),per5(76.4);
var : HH(0),LL(0);
HH = Highest(H,N)[1];
LL = Highest(L,N)[1];
var1 = LL-(HH-LL)*(Per1/100);
var2 = LL-(HH-LL)*(Per2/100);
var3 = LL-(HH-LL)*(Per3/100);
var4 = LL-(HH-LL)*(Per4/100);
var5 = LL-(HH-LL)*(Per5/100);
Plot1(HH);
Plot2(var1,"per1");
Plot3(Var2,"per2");
Plot4(Var3,"per3");
Plot5(Var4,"per4");
Plot6(Var5,"per5");
Plot7(LL);
즐거운 하루되세요
Input : af(0.02), maxAF(0.2);
var1 = SAR(af,maxAF);
if C > var1 Then
PlotPaintBar(High, Low, "파라볼릭",MAGENTA);
else
NoPlot(1);
Input : BWvalue(-2),maperiod(20), RocPeriod(12), stoPeriod1(5), stoPeriod2(3);
var1 = BW(maperiod, RocPeriod, stoPeriod1, stoPeriod2);
if var1 <= BWvalue Then
PlotPaintBar(High, Low, "바이너리웨이브",LGREEN);
else
NoPlot(1);
좋은 한주 되십시요.
2024-08-27
703
글번호 178102
답변완료
신호수식 부탁드립니다
분봉차르에서
선행스팬1 상승. 하락 강조 수식 부탁드립니다
2024-03-31
732
글번호 178101
답변완료
진입제한 수식
항상 친절한 답변 감사드립니다.
1일 진입 횟수를 제한하고자 할 때 다음 두 식이 어떤 차이가 있나요? 결과에 차이가 없다면 어떤 식을 사용하는 것이 좋은가요?
첫번째 수식
var: count(0), cnt(0);
count = 0; for cnt = 0 to 20{if sdate == EntryDate(cnt) Then count = count+1;}
var : entry(0);
if count < 1 and....
두번째 수식
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 entry < 1 and....
2024-03-31
684
글번호 178100
답변완료
종목검색부탁드립니다
안녕하세요
A = crossUP(선행스팬1,선행스팬2) [선행스팬1 양운)
B = C(가격3일선라인) > 전환선 (캔들이 전환선 라인 위로)1봉전 =< 0봉전
C = 0봉전 전환선> 기준선
D = 0봉전 crossUP(C,전환선)
E = 0봉전(기준선,전환선)1봉전 =< 0봉전
F = 0봉전 CrossUp(StochasticsSlow(Period1,Period2),
eavg(StochasticsSlow(Period1,Period2),Period3)); [Period1,2,3 = 5,3,3];
G = 0봉전 crossUP(C, 신고가3)[OR) crossUP(C, 신고가5)
감사합니다
2024-03-31
871
글번호 178099