답변완료
신호변환 부탁 드려요^^
키움에서 쓰던거라 지표는 다만들었는데...답답한게 많네요. 도움 주시면 감사하겠습니다.
1. 후팬볼밴(파랑)
Bu = BBandsUp(20,2);
Crossup(C, Bu(25))
2. 후팬볼밴5(핑크)
Bu = BBandsUp(20,2);
Crossup(C, Bu(25)) && C>C(1) * 1.05
3. 저점W패턴(녹색)
M = ma(C, 20);
T = LRL(20) + LRS(20);
T저점 = T>T(1) && T(1)<T(2);
shift(T저점, -1)
2025-07-30
195
글번호 192878
강조
답변완료
신호검색 부탁드립니다
Hu = WMa(WMa(c,Period/2)*2 - WMa(c, Period), floor(sqrt(Period)));
T = LRL(C,Period)+LRS(C,Period);
조건Up=CrossUp(Hu,T) && Hu>Hu(1) && T>T(1);
조건Dn=CrossDown(Hu,T) && Hu<Hu(1) && T<T(1);
최종=C>Hu && C>T && O<Hu && O<T && Hu>Hu(1) && T>T(1);
bs=BarsSince(조건up);
cnt=CountSince(조건Up,조건Dn)==1;
bs<봉수 && cnt(1) && 최종
Period=20
봉수=20
2025-07-30
173
글번호 192867
검색
답변완료
예스스팟 스튜디오
처음 실행하다 보니 오류가 뜨네요. 도움 주시면 감사하겠습니다. 에러는 줄번호15, 17에서 SyntaxError이라고 뜹니다.
var timer5 = 2; // 2초
var 매수금 = 100000;
var 손절 = 0.95;
var 익절 = 1.05;
var OrderList = [];
var MKList = [];
var req;
?
// 종목 제한 수 (변수로 설정)
var 종목제한수 = 10;
?
function Main_OnStart() {
// 1번 타이머, 1초
Main.SetTimer(1, timer5 * 1000);
?
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
}
?
function Main_OnTimer(nEventID) {
var d = new Date();
YYYYMMDD = d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds();
?
if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 100000) {
// 종목검색 수행
Main.ReqPowerSearch("변동성 돌파전략");
}
?
if (nEventID == 2) {
Main.ReqMarketData(OrderList[req]);
}
}
?
function Main_OnRcvItemList(aItemList, nCount) {
Main.KillTimer(1);
?
OrderList = [];
?
if (nCount >= 1) {
if (MKList.length == 0) {
OrderList = aItemList.slice(0, 종목제한수); // 한정된 수만 가져오기
} else {
for (var a = 0; a < nCount; a++) {
var Add = true;
for (var b = 0; b < MKList.length; b++) {
if (aItemList[a] == MKList[b].code) {
Add = false;
}
}
?
if (Add == true && !IsStockInAccount(aItemList[a])) {
OrderList.push(aItemList[a]);
// 제한 수를 넘는 경우 break
if (OrderList.length >= 종목제한수) {
break;
}
}
}
}
?
if (OrderList.length == 0) {
Main.SetTimer(1, timer5 * 1000);
} else {
req = 0;
Main.ReqMarketData(OrderList[req]);
}
}
}
?
function Main_OnRcvMarketData(MarketData) {
if (MarketData.code == OrderList[req]) {
MKList.push(MarketData);
?
// 계좌에 같은 종목이 있는지 확인
if (!IsStockInAccount(MarketData.code)) {
// 계좌에 없는 경우에만 매수
Account1.OrderBuy(MarketData.code, 1, 0, 1);
//Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), 0, 1);
//Account1.OrderBuy(MarketData.code, Math.floor(매수금 / MarketData.Ask(1)), MarketData.Ask(1), 0);
?
// 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다.
Main.MessageList(MarketData.code + " 주식을 매수합니다.");
} else {
Main.MessageList(MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다.");
}
?
req = req + 1;
?
if (req < OrderList.length) {
var aa = Main.ReqMarketData(OrderList[req]);
if (aa == -1) {
Main.SetTimer(2, 15000);
}
} else {
Main.SetTimer(1, timer5 * 1000);
}
}
}
?
function IsStockInAccount(stockCode) {
// 계좌에 해당 종목이 있는지 확인하는 함수
var numberOfBalances = Account1.GetTheNumberOfBalances();
?
for (var i = 0; i < numberOfBalances; i++) {
Account1.SetBalance(i);
if (stockCode == Account1.Balance.code) {
return true; // 계좌에 같은 종목이 있으면 true 반환
}
}
?
return false; // 계좌에 같은 종목이 없으면 false 반환
}
2025-07-30
193
글번호 192865
시스템
답변완료
검색식 부탁드립니다.
안녕하세요. 아래수식으로 검색식 부탁드립니다.
EMA1=eavg(C,기간1);
EMA2=eavg(EMA1,기간1);
EMA3=eavg(EMA2,기간1);
B=3*EMA1-3*EMA2+EMA3; // 테마선
E24=eavg(C,기간2);
W24=wavg(C,기간2);
A5=(C+nPreWC(1)+nPreWC(2)+nPreWC(3)+nPreWC(4))/5;
C>=W24 and C>=A5 and crossup(B,E24)
지표변수
기간1:20
기간2:224
주봉함수:nPreWC(n)------- n주전종가
현재가가 W24보다 크거나 같고 현재가가 5주이평(A5)보다 크거나 같을때 테마선(B)이 E24를 돌파
2025-07-29
175
글번호 192859
종목검색
답변완료
간단식 부탁드립니다
거의 수동매식 인데요. 아래와 같은 식이 가능한지요?
-지정가를 변수로 처리하고,차트를 보다가 숫자를 수동으로 입력하면
-가격이 하락하다가 지정가 위에 일정틱에서 즉시주문이 나가도록 하고 싶습니다
-가령 변수로 설정해놓은 지정가를 1로 입력하면 가격이 하락해서 1.04 도달(atlimit)할
때 즉시매수
-아래와 같은 식으로 시뮬레이션 해보면 신호가 발생하는 데, 가격이 상승중일 때 신호가
발생하거나,장초반 그냥 신호발생, 두번째 이후 신호에서 1이하 0.1,0.3 이런 신호가 발생합니다. 수정부탁합니다.
-당일 매매 조건을 추가해주시면 감사
INPUT:횟수(10),지정가(0),진입틱(0.04),LOSS(30);
var : ii(0),entry(0),T1(0);
if Bdate != Bdate[1] Then
ii = 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< 횟수 Then//
{
Buy("nowb",AtLimit,지정가+PriceScale*진입틱);
}
SetStopLoss(LOSS,PercentStop);
SetStopEndofday(151500);
2025-07-29
151
글번호 192857
시스템