커뮤니티
예스스팟 Q&A
답변완료
OnOrderReponse에서 OrderNum 값이 return되지 않습니다.
안녕하세요.
오랜만에 인사드립니다. 환절기 건강 유의하시기바랍니다.
다름아아니라 OnOrderResponse 기능에서 OrderNum의 값이 Return되지 않아 혹시 시스템상 어떤 특정 조건이 만족되어야 해당 값이 나오는 것인지 문의드리고자 합니다.
아래와 같은 코드로 주문시 응답 메세지를 보면 OnOrderResponse에서 OrderID값은 보이는데, OrderNum 값은 아무값도 Return되지 않습니다.
(MessageList 표시 예: 체결정보 1
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == ID)
{
Number = OrderResponse.orderNum;
Main.MessageList("체결정보", OrderResponse.orderID, OrderResponse.orderNum);
var RowN = 0;
RowN = Excel1.GetRowCount(2);
//엑셀에 매수주문 정보 기록: 일자,시간, 종목명, 종목코드, 매매종류, 가격, 수량, 금액
Excel1.SetArrayToRow(2, 'K'+RowN, [Number]);
}
}
제 시스템의 현재 흐름은 아래와 같습니다. 혹시 아래 흐름에서 OrderNum를 Return 받는데 문제가 되는 부분이 있을까요?
1. function Main_OnRiseSignal(ChartEx, Signal) 를 통해 Account1.OrderBuy를 사용하여 매수/매도 주문
ID = Account1.OrderBuy(Main.GetOrderCode(Signal.code),SplitCount,BuyPrice,0);
2. 위 function Main_OnOrderResponse(OrderResponse) 를 통해 동일한 ID의 값을 Return 받아 엑셀에 저장함
여기서 MessageList에서 OrderID만 표시됨
3. function Main_OnNotifyFill(NotifyFill) 를 통해 체결정보 저장
궁극적으로 주문정보와 체결정보를 OrderNum를 통해 데이터를 연결하고자 함.
아무리 가이드라인을 보고 관련 질의응답을 봐도 관련 내용이 없어서 격무로 바쁘시겠지만 도움을 주시면 정말 감사하겠습니다.
2023-10-24
859
글번호 225862
답변완료
자동구동프로그램문의
파워종목검색 파일명이 나다라야종목검색 입니다
예스스팟 프로그램을 실행하려는데 파일을 열수없다고 메시지가 뜹니다
알려주심 감사하겠습니다.
2023-10-24
926
글번호 225861
답변완료
풋스프레드 매수
아래식은 하방 Put 스프레드 수식입니다
차트1에서 매도 신호가 나오면 1.00 과 가장 가까운 Put 옵션을 매수하고
동시에 바로 아래 외가격(Put종목-1)은 매도합니다.
과거 게시글의 상방 콜 스프레드 수식을 참조하여 작성하여 보았습니다.
진입은 되는데 청산이 안됩니다.
수식이 맞는지 살펴주시기 바랍니다.
************************************************************************
var S1= 0,S2 = 0,PutCode1,PutCode2;
var RemainDays,entry;
function Main_OnStart()
{
Main.MessageList("Start");
RemainDays = Option1.GetRemainDays(0,0);
entry = true;
if (RemainDays == 1)
{
Main.SetTimer(1, 1000);
}
}
function Chart1_OnRiseSignal(Signal)
{
S2 = S1;
S1 = Signal.signalKind;
if (S1 == 3 && entry == true)
{
if (S2 != 3)
{
var HNum = Option1.uppersATM;
var LNum = Option1.lowersATM;
var CP = [];
var PD1 = [];
var PD2 = [];
for (var i = -LNum; i <= HNum; i++)
{
CP[i+LNum] = Math.abs(Option1.GetCurrent(0, i)-1);
PD1[i+LNum] = Option1.GetATMPutRecent(i);
PD2[i+LNum] = Option1.GetATMPutRecent(i+1);
}
var MinV = CP[0];
PutCode1 = PD1[0];
PutCode2 = PD2[0];
for (var i = 0; i < CP.length; i++)
{
if (CP[i] < MinV)
{
MinV = CP[i];
PutCode1 = PD1[i];
PutCode2 = PD2[i];
}
}
Account1.OrderBuy(PutCode1, 1, Option1.GetAskByCode(PutCode1, 5), 0);
Account1.OrderSell(PutCode2, 1, Option1.GetBidByCode(PutCode2, 5), 0);
}
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var d = new Date();
var T1 = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (T1 >= 150000)
{
Main.KillTimer(1);
entry = false;
Account1.SetBalance(PutCode1);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
var vol1 = Account1.Balance.count;
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);
}
Account1.SetBalance(PutCode2);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
var vol2 = Account1.Balance.count;
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1);
}
}
}
}
2024-11-15
876
글번호 225860
멋진감자 님에 의해서 삭제되었습니다.
2023-10-19
1
글번호 225859
좌오비우오비 님에 의해서 삭제되었습니다.
2023-10-18
4
글번호 225858
답변완료
여기 게시판은 답을 안해주시나요 궁금합니다....
여기 게시판은 답을 안해주시나요 궁금합니다....
2023-10-12
1131
글번호 225854
답변완료
예스스팟으로 파워종목 검색
예스스팟으로 파워종목 검색하여 자동매매 작동시 매매종목을 갯수를 제한할수있나요 또한 종목당 매수금액을 정할수 있는 명령어가있는지요
2023-10-10
1102
글번호 225853
올드송 님에 의해서 삭제되었습니다.
2023-10-04
36
글번호 225852
관리자에 의해 수식작성 QnA로 이동되었습니다
2023-10-04
38
글번호 225851
답변완료
문의합니다.
항상 빠른 대응 감사합니다.
function Main_OnStart()
{
Main.ReqPowerSearch("#TEST");
}
위 처럼 사용자 검색식을 읽어온후
1) 매매는 9시 ~ 3시20분까지 거래 가능하며
2) 5분(15분/30분) 마다 검색식을 읽어와서
3) 첫매수 100만원
4) 분할매수 5회(-2%(첫매수금액의 0.2%) , -4%(첫매수금액의 0.2%),
-6%(첫매수금액의 0.2%), -8%(첫매수금액의 0.2%),
-10%(첫매수금액의 0.2%))
5) 분할매도 4회(+2%, +4%, +6%, +8%)를 진행하며
분할매도시 1차매도후 -1.4% 밀리는경우 전체익절
분할매도시 1차,2차매도후 -1.4% 밀리는경우 전체익절
분할매도시 1차,2차,3차매도후 -1.4% 밀리는경우 전체익절
6) 수익보전은 최대 +15%상승후 -5% 밀리는 경우 전체 익절
7) StopLoss : -15%입니다.
가능하면 꼭..~~부탁드립니다.
2023-10-19
918
글번호 225850