답변완료
Orderbuy에 대해 설명 부탁드립니다.
Account1.OrderBuy(“005930”,10,0,1)
예스스탁을 설명한 파일에 위와 같은 예시가 있었습니다.
종목코드가 005930인 삼성전자 10주를 시장가로 사라는 명령어로 알고 있습니다.
1) 현재가로 살 때 3번째칸(dPrice)을 0으로 지정해도 현재가로 주문이 나가는지입니다.
Account1.OrderBuy(“005930”,10,0,0)
위와 같이 주문하면 삼성전자 10주를 0원에 지정가 매수로 나가는지
아니면 매수 당시 현재가로 지정가 매수가 나가는지 궁급합니다.
2) 제가 하고 싶은것은 최우선지정가로 주문하는 것인데,
Account1.OrderBuy(“005930”,10,0,10)
dPrice칸은 0으로 둔채 위와 같이 입력하면
삼성전자 10주를 최우선지정가로 사라는 명령이 나가는지 궁금합니다.
모의매매에는 다 0원으로 주문이 나가는 것 같아서 질문드립니다.
2019-06-12
3093
글번호 224898
답변완료
수식 작성 부탁드립니다.
안녕하세요
많은 도움에 항상 감사드립니다.
아래 예시의 스팟 수식을 부탁드립니다.
1. 아래의 스팟 샘플은 매수 포지션 일때, 익절과 손절 설정입니다.
아래의 조건문에 추가하거나 아니면 새롭게 트레일링 조건을 하나 더 추가하고 싶습니다.
( 예시 : 수익 최고치가 진입가의 + 25틱 이되면 트레일링 발동하여 (최고치에서) -5틱 아래로 내려오면 전량 청산.
예로는 +25틱에서 -5틱 이상 떨어지지 않으면 계속 증가하여 최종 +50틱에서 전량 청산한다.)
// ----------------------------------------------------------
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 )
{
//현재가가 잔고평단가 대비 지정틱수(+50틱) 이상이면 익절청산 (시장가)
if (MarketData1.current >= (Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*50) )
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
}
}
// ----------------------------------------------------------
2. 스팟에서 매매시간 설정이 가능하다면, 스팟에서 아래와 같이 설정하고 싶습니다.
(1) 거래시간 #1 : 당일 오전 10시 ~ 저녁 9시
#2 : 당일 저녁 11시 ~ 저녁 12시
#3 : 다음날 오전 00시 ~ 오전 4시
( 오전 10시~ 다음날 오전4시 (당일 저녁 9시~11시 제외) )
3. 손절 익절 초기 설정은 손절(25틱)/익절(25틱) 입니다.
(1) 진입후에 30분이 지나도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 30분이 지나도 청산이 되지 않으면 현재가에 청산한다.
(2) 진입후에 20봉이 경과해도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 또 20봉이 경과해도 청산이 되지 않으면 현재가에 청산한다.
감사합니다.
2019-06-19
3220
글번호 224896
답변완료
수식작성 문의드립니다.
수고많으세요. 궁금한게 있어 질문드립니다.
먼저 수식을 적용하고, 매매를 해보고,
매매를 한 상태에서 수식을 적용해보았습니다.
청산이 되지 않는 경우가 있는데 왜 그런지 궁금합니다.
(수식)
var tEnable = true, BID,SID,Bnum,Snum;
function Main_OnStart()
{
Main.MessageLog("청산식 시작");
}
function Main_OnU*dateMarket(sItemCode, lU*dateID)
{
if (sItemCode == M1.code && lU*dateID == 20001 && tEnable == true) {
A1.SetBalanceItem(M1.code,0);
if (A1.Balance.profit > tProfit || A1.Balance.profit < tLoss) {
if (A1.Balance.position == 1 && tEnable == true) {
BID = A1.OrderBuy(A1.Balance.code, A1.Balance.count, 0, 1);
tEnable = false;
}
else if (A1.Balance.postion == 2 && tEnable == true) {
SID = A1.OrderSell(A1.Balance.code, A1.Balance.count, 0, 1);
tEnable = false;
}
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID)
Bnum = OrderResponse.orderNum;
else if(OrderResponse.orderID == SID)
Snum = OrderResponse.orderNum;
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Bnum) {
Main.MessageList("매도청산");
tEnable = true;
}
else if (NotifyFill.orderNum == Snum) {
Main.MessageList("매수청산");
tEnable = true;
}
}
2019-06-07
3234
글번호 224895
답변완료
확인및 수식 부탁드립니다.
안녕하세요
예스스팟을 이용하여 아래의 예스랭귀지 수식을 사용하고자 합니다.
* 아래의 기본적인 시스템수식을 예스스팟을 이용하여 실행하기 위해 아래부분을 추가한 스팟 수식을 부탁드립니다.
(1) 거래는 1계약을 기준으로 실행한다.
(2) 스팟 최초 실행후 미체결 상태가 있는경우, 미체결을 취소한다.
(3) 스팟실행후 매수포지션(잔고)이 있는 상태에서, (+15틱 이상 수익상태인 경우 즉시 청산하고 아닌경우는) 신호
가 매수 청산 신호가 발생하면 청산하고, 매수신호 또는 매도청산 신호인 경우 실행하지 않으며, 매도 신호인
경우 진입된 매수포지션을 청산하고, 새로 매도 1계약 진입한다.
(4) 3번에서 매도포지션 보유 경우도 같은 방식으로 처리한다.
(5) 진입신호시, 같은 포지션이 존재하는 경우, 추가 진입하지 않는다.(1계약)
(6) 신호발생후 미체결인 있는 경우, 30초후 1호가(유리호가) 정정주문하고, 2분후에도
미체결 상태이면 취소처리하고, 미체결에 대한 청산 또는 익절/손절 부분도 처리되지 않도록 설정한다.
(7) 진입후 익절(20틱)/손절(20틱) 청산 한다.
(8) 거래 시간을 18:00 ~ 23:00 까지로 제한
(9) 진입한 상태에서 손실 또는 수익이 증거금의 10% 이상 발생하는 경우 전량 청산 하고 당일 거래를 종료하도록 설정
항상 많은 도움에 감사드립니다.
// --------------------------------------------------------
// 시스템 수식 : GC-2060
// --------------------------------------------------------
Input : shortPeriod(5), midPeriod(20), longPeriod(60);
value1 = ma(C, shortPeriod);
value2 = ma(C, midPeriod);
value3 = ma(C, longPeriod);
# 매수
If CrossUP(value1, value2) Then
{
Buy();
}
# 매수청산
If CrossUP(value2, value3) Then
{
ExitLong();
}
# 매도
If CrossDown(value1, value2) Then
{
Sell();
}
# 매도청산
If CrossUP(value2, value3) Then
{
ExitShort();
}
// --------------------------------------------------------
감사합니다.
2019-05-29
3469
글번호 224879