커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4482
글번호 230811
knb 님에 의해서 삭제되었습니다.
2016-11-21
92
글번호 104187
답변완료
틱 데이타를 늘릴 수 있을까요?
안녕하세요.
항상 수고가 많으십니다.
---- 질문입니다 -----------------------------------------------------
해외 선물에서 틱데이타를 이용하려는데 데이타 수가 너무 부족합니다.
현대 선물을 이용중인데, 틱으로 시스템을 적용하려고 보니 틱 데이타가 4~5일 정도만
제공되더군요.
틱 데이타를 늘릴 수 있는 방법이 있는지 궁금합니다.
감사합니다.
항상 하시는 일에 좋은 결실 거두시기를 ~~
2016-11-21
111
글번호 104186
답변완료
질문 드립니다.
if MarketPosition == 1 Then{
var1 = int((highest(h,BarsSinceEntry)-EntryPrice)/(PriceScale*12));
var2 = var1*(PriceScale*12);₩
if var1 == 0 Then
exitlong("bx1",AtStop,EntryPrice-(PriceScale*11));
if var1 >= 1 Then
exitlong("bx2",AtStop,EntryPrice+var2-(PriceScale*11));
}
if MarketPosition == -1 Then{
var3 = int((EntryPrice-lowest(l,BarsSinceEntry))/(PriceScale*12));
var4 = var3*(PriceScale*12);
if Var3 == 0 Then
ExitShort("sx1",AtStop,EntryPrice+(PriceScale*11));
if Var3 >= 1 Then
ExitShort("sx2",AtStop,EntryPrice-var4+(PriceScale*11));
}
상위 식은 예전에 여쭤 봤었던,
1. 진입 후 0.55 손절
2 손절 되지 않고 0.6 익절 시 그 시점에서 손절 0.55
3. 2번 계속 반복.
에 대한 식입니다.
그런데 제대로 작동하지 않는 점을 발견하여 질문 드립니다.
첫번째 스마일에 보시면, 진입가 250.50 으로 부터
0.6 익절을 두 번 된 시점인 249.30 까지 도달하였습니다.
그리하여 249.30에서 0.55 상승한 249.85에 매도청산이 이루어 져야 하나,
작동 하지 않습니다.
식이 무엇인가 잘못 된 것일까요?
감사합니다.
2016-11-21
121
글번호 104185
새로운돌 님에 의해서 삭제되었습니다.
2016-11-21
0
글번호 104184
답변완료
수식 부탁 드립니다.
안녕하세요.
연결선물 당일청산 피라미딩 아래 수식에서 목표 청산 후 재진입이 안되네요.
차트에 적용 수식 점검 수정 부탁 드립니다.
input : N(1),PN(2),당일손실(1.0);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),lossK(0),v1(0);
var : Bxcond(false),SxCond(false);
var : Xcond(false),ProfitCond(false);
var : BE2(false),BE3(false),SE2(false),SE3(false);
var : B2(0),B3(0),S2(0),S3(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
Xcond == false;
ProfitCond == false;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
//=======================================================================================================
#당일손실제한
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//=======================================================================================================
#피라미딩진입수식
Input : i증감(0.2),누적진입횟수(3),진입수량(1);
if MarketPosition == 1 and MaxEntries < 누적진입횟수 and Bxcond == false Then
Buy("PBB",AtStop,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and MaxEntries < 누적진입횟수 and SxCond == false Then
sell("PSS",AtStop,LatestEntryPrice(0)-i증감,진입수량);
//=======================================================================================================
#합산목표수익청산
Input : SPPT(2.0);
SetStopPosition;
SetStopProfittarget(SPPT,PointStop);
//=======================================================================================================
# 목표청산 재진입
input : ATRP(10),X(2);
var1 = ma(c,5);
var2 = ma(c,10);
#직전거래가 매수포지션이고 SetStopProfittarget으로 청산했으면
#이평 데드일때 매도진입
if MarketPosition == 0 and
MarketPosition(1) == -1 and
IsEntryName("StopProfitTarget",1) == true and BCount == true and
CrossDown(var1,var2) Then
Buy("rebuy");
#직전거래가 매도포지션이고 SetStopProfittarget으로 청산했으면
#이평 골드일때 매수진입
if MarketPosition == 0 and
MarketPosition(1) == -1 and
IsEntryName("StopProfitTarget",1) == true and SCount == true and
CrossDown(var1,var2) Then
sell("resell");
if MarketPosition == 1 and IsEntryName("rebuy") == true then {
ExitLong("bx",AtStop,EntryPrice-0.5);
ExitLong("btr",AtStop,highest(H,BarsSinceEntry)-ATR(ATRP)*X);
}
if MarketPosition == -1 and IsEntryName("resell") == true then {
ExitShort("sx",AtStop,EntryPrice-0.5);
ExitShort("str",AtStop,highest(H,BarsSinceEntry)+ATR(ATRP)*X);
}
SetStopPosition;
if IsEntryName("rebuy") == false or IsEntryName("resell") == false then
SetStopProfittarget(1.5,PointStop);
Else
SetStopProfittarget(0);#해제
//=======================================================================================================
#진입식예제
Input : Period(12), Period1(5);
Var : value(0);
value = StochasticsK(Period,Period1);
# 매수/매도청산
If CrossUP(value, 20) and BCount+SCount < N and dayPL > -당일손실 Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 80) and BCount+SCount < N and dayPL > -당일손실 Then
{
Sell();
}
//=====================================================================================================
#당일 청산시간
SetStopEndofday(153000);
//=====================================================================================================
2016-11-21
115
글번호 104183
답변완료
50591번 질문과 관련하여
안녕하세요.
아래 1번은 지난주 50591번 질문에 대해서 답변으로 주신 수식과 거의 일치하고,
2번은 제가 손절등 약간 손 본 것입니다. 두 개의 수식을 검토해주시고, 차이점을 알려주시면 감사하겠습니다. 그리고, 사용된 함수의 개념등에 대해서 추가로 질문드릴게 있는데 시간 되시면 전화주실 수 있는지요?
항상 감사합니다.
1.
input : short(3),long(100),sig(9),P(5);
var : MACDV(0),MACDS(0),dni(0),vol(0),T(0),mav(0);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
mav = ema(C,P);
if CrossDown(MACDV,MACDS) Then{
TL_New(sdate,stime,99999999,sdate,stime,0);
T = -1;
dni = index;
#종가가 이평위이면 3계약 매도진입
#데드봉 주문 수량은 0
vol = 0;
#데드봉 종가가 이평-2틱 이상이면 주문 수량은 +1
if C >= mav-PriceScale*2 Then
vol = vol+1;
#데드봉 종가가 이평-1틱 이상이면 주문 수량은 +1
if C >= mav-PriceScale*1 Then
vol = vol+1;
#데드봉 종가가 이평-2틱 이상이면 주문 수량은 +1
if C >= mav Then
vol = vol+1;
#vol이 0이상이면 데드봉에서 해당 수량만큼 매도
if vol > 0 Then{
sell("s",OnClose,def,vol);
}
}
if CrossUp(MACDV,MACDS) Then{
ExitShort("sx");
T = 1;
}
if T == -1 and index <= dni+3 then{
#데드시 vol이 0일때 최근 완성봉 이평-2틱 이상의 시세가 발생하면 1계약 매도
if vol < 1 Then
sell("s1",atlimit,mav-PriceScale*2,1);
#데드시 vol이 2미만일때 최근 완성봉 이평-1틱 이상의 시세가 발생하면 1계약 매도
if vol < 2 Then
sell("s2",atlimit,mav-PriceScale*1,1);
#데드시 vol이 3미만일때 최근 완성봉 이평 이상의 시세가 발생하면 1계약 매도
if vol < 3 Then
sell("s3",atlimit,mav,1);
}
2.
input : short(3),long(100),sig(9),P(5);
var : MACDV(0),MACDS(0),dni(0),vol(0),T(0),mav(0),EP(0);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
mav = ema(C,P);
If Crossdown(MACDV,MACDS) and Stime > 090200 and Time < 150000 then{
TL_New(sdate,stime,99999999,sdate,stime,0);
T = -1;
dni = index;
vol = 0;
EP = C;
}
If T == -1 and index < dni+3 then{
if vol < 1 Then
sell("s1",Atmarket,def,1);
if vol < 2 Then
Sell("s2",atlimit,mav-PriceScale*1,1);
if vol < 3 Then
sell("s3",atlimit,mav-PriceScale*1,1);
}
if MarketPosition == -1 Then{
ExitShort("sl",AtStop,AvgEntryPrice+0.40);
}
챠트는 600틱 챠트 기준입니다.
2016-11-21
113
글번호 104182
답변완료
수식 부탁드립니다
(1)
100 캔들 천정에서 파라볼릭3번째 음전환 이후 첫번째 양전환 매수
100 캔들 바닥에서 파라볼릭3번째 양전환 이후 첫번째 음전환 매도
감사합니다
2016-11-21
114
글번호 104174
답변완료
수식 문의 드립니다
안녕하세요, 해외선물로 시스템을 작성하고 있습니다.
참조데이타1은 5분봉, 참조데이타2는 일봉을 사용하고 있습니다.
1. '화요일인 경우에만 진입하여라' 라는 시그널을 If Data2(DayOfWeek(sDate == 1) 을 사용하고 있는데, 참조데이타가 완성전이라 2를 사용하면 제대로 안잡히고 1을 사용해야 화요일로 잡히는 것인가요?
2. '화요일 장시작에서 화요일 현재까지 최저점이 Close-0.2*STD 보다 높은 경우에~' 라는 조건은 어떻게 작성하면 될까요?
3. '수요일 장시작 시초가에 매도하여라 or 수요일 장시작 Data1 첫째봉의 종가로 매도하여라'라는 수식은 어떻게 작성하면 될까요?
감사합니다.
2016-11-21
104
글번호 104173
답변완료
문의드립니다
수고하십니다 문의드림니다
데이터2부터 ~데이터4까지는콜옵션이고요
데이터5~데이터7까지는풋옵션입니다
데이터2의고가가 데이터5의 저가보다 작고
데이터2의고가 빼기 데이터5의저가 =var1에저장하고요
데이터2의고가가 데이터6의저가보다 작고
데이터2의고가 빼기 데이터6의저가 =var2에저장하고요
데이터2의고가가 데이터7의저가보다 작고
데이터2의고가 빼기 데이터7의저가 =var3에저장하고요
Var1.var2.var3 갑중에 제일작은값을 var33에저장하고싶습니다
데이터3기준으로 위처럼빼기 데이터5.6.7값들중작은값을var44에저장하고요
데이터4도 위처럼빼기 데이터5.6.7 값들중작은값을var55에저장하고요
Var33.var44.var55 중에서제일작은값이나오면
예로 작은값이 데이터3고가와 데이터6저가에서 나오면
데이터3고가와 데이터6의 저가가 같은값이될때 즉 교차될때 선물지수의값을 표시하고싶습니다
부탁드림니다 감사합니다
2016-11-21
103
글번호 104172