예스스탁
예스스탁 답변
2017-12-06 15:41:25
안녕하세요
예스스탁입니다.
1
작성하신 수식의 주문함수의 매매구분이 국내종목용입니다.
해외선물과 국내종목은 주문함수의 매개변수가 다릅니다.
해외선물은 가격구준이 시장가가 1, 지정가가 2 입니다. 0이 없습니다.
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
와 같이 지정가의 가격구분이 0인 부분들이 있습니다. 지정가는 2입니다.
2
예스스팟은 자바스크립트 언어입니다.
모든 함수는 객체.함수로 지정되어야 합니다.
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
는 아래와 같이 객체명이 지정되어야 합니다.
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
즐거운 하루되세요
> 이심전심 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 아래와 같이 수식을 작성했는데 별첨한 그림에서처럼 "주문오류"가 발생하고 체결이 안됩니다.
그리고 체결시 소리가 나도록 설정된 부분도 그림에서처럼 에러가 발생합니다.
오류를 수정하지 못하고 있습니다. 도움을 좀 부탁드립니다.
차트 3개 중에서 매수신호가 2곳에서 발생하면 매수, 한 곳이라도 매도신호 발생하면 청산 그리고 10틱 이익이면 익절청산, 10틱손해면 손절청산을 하려고 합니다.
아래는 차트 1의 수식이고 차트2나 차트3도 같은 형태입니다.
===================
var SK1;
var SK2;
var SK3;
function Main_OnStart()
{
SK1 = 0;
SK2 = 0;
SK3 = 0;
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
//현재차트1에서 매도신호 발생하고 차트2 또는 차트3에서 매도신호 발생중이면 매도
if (SK1 == 3 &&( SK2 == 3 || SK3 == 3) )
{
//1계약 신호가격으로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
}
//잔고가 매도포지션이고 수량이 있을떄만
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매도청산신호 발생하면 매도포지션 청산
if ( SK1 == 4 || SK2 == 4 || SK3 == 4 )
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count, 0, 1); //시장가 청산
// Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 익절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, 0, 1);
// Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MarketData1.Ask(1), 0);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 손절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
//현재차트1에서 매수신호 발생하고 차트2 또는 차트3에서 매수신호 발생중이면 매수
if (SK1 == 1 && ( SK2 == 1 || SK3 == 1) )
{
//1계약 신호가격으로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩buy.wav");
}
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매수청산신호 발생하면 매수포지션 청산
if ( SK1 == 2 || SK2 == 2 || SK3 == 2 )
{
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 익절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
// if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.25)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 손절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
//if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
}
아래와 같이 수정했는데 매수, 매도는 잘 되는데 청산이 안 됩니다.
가령 매수잔고가 있는 경우 세 차트 중 하나라도 매도신호가 뜨면 청산이 되어야 하는데 그게 안되고 그 밑에 손절청산이나 익절청산도 안됩니다.
사운드는 여전히 안되고 있습니다. 메시지는 아래와 같습니다.
TypeError: Cannot call method 'PlaySound' of undefined
제가 지정한 wav소리는 나지 않고 모두 alert.wav 소리로 대체되어 나옵니다.
var SK1;
var SK2;
var SK3;
function Main_OnStart()
{
SK1 = 0; //oil500t
SK2 = 0; //oil700t
SK3 = 0; //oil900t
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
//현재차트1에서 매도신호 발생하고 차트2와 차트3에서 매도신호 발생중이면 매도
if (SK1 == 3 && ( SK2 == 3 || SK3 == 3 ) && Account1.Balance.count < 3 )
{
//1계약 신호가격으로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩.3signal_오일 매도.wav");
}
//잔고가 매도포지션이고 수량이 있을떄만
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매도청산신호 발생하면 매도포지션 청산
if ( SK1 == 4 || SK2 == 4 || SK3 == 4 )
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count, 0, 1); //시장가 청산
// Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10t 이하이면 익절청산
// if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.25)
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, 0, 1);
// Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SingalClearSell.wav");
}
//현재가가 잔고평단가 대비 +10t 이상이면 손절청산
//if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.3)
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SingalClearSell.wav");
}
}
//현재차트1에서 매수신호 발생하고 차트2와 차트3에서 매수신호 발생중이면 매수
if (SK1 == 1 && ( SK2 == 1 || SK3 == 1) && Account1.Balance.count < 3 )
{
//1계약 신호가격으로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩.3signal_오일 매수.wav");
}
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매수청산신호 발생하면 매수포지션 청산
if ( SK1 == 2 || SK2 == 2 || SK3 == 2 )
{
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10t 이상이면 익절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
// if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.25)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SignalClearBuy.wav");
}
//현재가가 잔고평단가 대비 -10t 이하이면 손절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
//if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SignalClearBuy.wav");
}
}
}
==========================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.
> 안녕하세요
예스스탁입니다.
1
작성하신 수식의 주문함수의 매매구분이 국내종목용입니다.
해외선물과 국내종목은 주문함수의 매개변수가 다릅니다.
해외선물은 가격구준이 시장가가 1, 지정가가 2 입니다. 0이 없습니다.
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
와 같이 지정가의 가격구분이 0인 부분들이 있습니다. 지정가는 2입니다.
2
예스스팟은 자바스크립트 언어입니다.
모든 함수는 객체.함수로 지정되어야 합니다.
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
는 아래와 같이 객체명이 지정되어야 합니다.
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
즐거운 하루되세요
> 이심전심 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 아래와 같이 수식을 작성했는데 별첨한 그림에서처럼 "주문오류"가 발생하고 체결이 안됩니다.
그리고 체결시 소리가 나도록 설정된 부분도 그림에서처럼 에러가 발생합니다.
오류를 수정하지 못하고 있습니다. 도움을 좀 부탁드립니다.
차트 3개 중에서 매수신호가 2곳에서 발생하면 매수, 한 곳이라도 매도신호 발생하면 청산 그리고 10틱 이익이면 익절청산, 10틱손해면 손절청산을 하려고 합니다.
아래는 차트 1의 수식이고 차트2나 차트3도 같은 형태입니다.
===================
var SK1;
var SK2;
var SK3;
function Main_OnStart()
{
SK1 = 0;
SK2 = 0;
SK3 = 0;
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
//현재차트1에서 매도신호 발생하고 차트2 또는 차트3에서 매도신호 발생중이면 매도
if (SK1 == 3 &&( SK2 == 3 || SK3 == 3) )
{
//1계약 신호가격으로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
}
//잔고가 매도포지션이고 수량이 있을떄만
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매도청산신호 발생하면 매도포지션 청산
if ( SK1 == 4 || SK2 == 4 || SK3 == 4 )
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count, 0, 1); //시장가 청산
// Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 익절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, 0, 1);
// Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MarketData1.Ask(1), 0);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 손절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
//현재차트1에서 매수신호 발생하고 차트2 또는 차트3에서 매수신호 발생중이면 매수
if (SK1 == 1 && ( SK2 == 1 || SK3 == 1) )
{
//1계약 신호가격으로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩buy.wav");
}
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매수청산신호 발생하면 매수포지션 청산
if ( SK1 == 2 || SK2 == 2 || SK3 == 2 )
{
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 익절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
// if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.25)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 손절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
//if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
}
예스스탁
예스스탁 답변
2017-12-22 15:47:55
> 이심전심 님이 쓴 글입니다.
> 제목 : Re : Re : [추가질문]수정했는데 다른 문제가
> 아래와 같이 수정했는데 매수, 매도는 잘 되는데 청산이 안 됩니다.
가령 매수잔고가 있는 경우 세 차트 중 하나라도 매도신호가 뜨면 청산이 되어야 하는데 그게 안되고 그 밑에 손절청산이나 익절청산도 안됩니다.
사운드는 여전히 안되고 있습니다. 메시지는 아래와 같습니다.
TypeError: Cannot call method 'PlaySound' of undefined
제가 지정한 wav소리는 나지 않고 모두 alert.wav 소리로 대체되어 나옵니다.
var SK1;
var SK2;
var SK3;
function Main_OnStart()
{
SK1 = 0; //oil500t
SK2 = 0; //oil700t
SK3 = 0; //oil900t
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
//현재차트1에서 매도신호 발생하고 차트2와 차트3에서 매도신호 발생중이면 매도
if (SK1 == 3 && ( SK2 == 3 || SK3 == 3 ) && Account1.Balance.count < 3 )
{
//1계약 신호가격으로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩.3signal_오일 매도.wav");
}
//잔고가 매도포지션이고 수량이 있을떄만
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매도청산신호 발생하면 매도포지션 청산
if ( SK1 == 4 || SK2 == 4 || SK3 == 4 )
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count, 0, 1); //시장가 청산
// Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10t 이하이면 익절청산
// if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.25)
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, 0, 1);
// Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MarketData1.Ask(1), 0);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SingalClearSell.wav");
}
//현재가가 잔고평단가 대비 +10t 이상이면 손절청산
//if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.3)
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SingalClearSell.wav");
}
}
//현재차트1에서 매수신호 발생하고 차트2와 차트3에서 매수신호 발생중이면 매수
if (SK1 == 1 && ( SK2 == 1 || SK3 == 1) && Account1.Balance.count < 3 )
{
//1계약 신호가격으로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩.3signal_오일 매수.wav");
}
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매수청산신호 발생하면 매수포지션 청산
if ( SK1 == 2 || SK2 == 2 || SK3 == 2 )
{
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 2);
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10t 이상이면 익절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
// if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.25)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SignalClearBuy.wav");
}
//현재가가 잔고평단가 대비 -10t 이하이면 손절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
//if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
Main.PlaySound("C:₩예스트레이더₩data₩Sound₩SignalClearBuy.wav");
}
}
}
==========================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.
> 안녕하세요
예스스탁입니다.
1
작성하신 수식의 주문함수의 매매구분이 국내종목용입니다.
해외선물과 국내종목은 주문함수의 매개변수가 다릅니다.
해외선물은 가격구준이 시장가가 1, 지정가가 2 입니다. 0이 없습니다.
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
와 같이 지정가의 가격구분이 0인 부분들이 있습니다. 지정가는 2입니다.
2
예스스팟은 자바스크립트 언어입니다.
모든 함수는 객체.함수로 지정되어야 합니다.
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
는 아래와 같이 객체명이 지정되어야 합니다.
Main.PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
즐거운 하루되세요
> 이심전심 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 아래와 같이 수식을 작성했는데 별첨한 그림에서처럼 "주문오류"가 발생하고 체결이 안됩니다.
그리고 체결시 소리가 나도록 설정된 부분도 그림에서처럼 에러가 발생합니다.
오류를 수정하지 못하고 있습니다. 도움을 좀 부탁드립니다.
차트 3개 중에서 매수신호가 2곳에서 발생하면 매수, 한 곳이라도 매도신호 발생하면 청산 그리고 10틱 이익이면 익절청산, 10틱손해면 손절청산을 하려고 합니다.
아래는 차트 1의 수식이고 차트2나 차트3도 같은 형태입니다.
===================
var SK1;
var SK2;
var SK3;
function Main_OnStart()
{
SK1 = 0;
SK2 = 0;
SK3 = 0;
}
function Chart1_OnRiseSignal(Signal)
{
SK1 = Signal.signalKind;
//현재차트1에서 매도신호 발생하고 차트2 또는 차트3에서 매도신호 발생중이면 매도
if (SK1 == 3 &&( SK2 == 3 || SK3 == 3) )
{
//1계약 신호가격으로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩sell.wav");
}
//잔고가 매도포지션이고 수량이 있을떄만
if (Account1.Balance.position == 1 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매도청산신호 발생하면 매도포지션 청산
if ( SK1 == 4 || SK2 == 4 || SK3 == 4 )
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Account1.Balance.count, 0, 1); //시장가 청산
// Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 익절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, 0, 1);
// Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, MarketData1.Ask(1), 0);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 손절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
//현재차트1에서 매수신호 발생하고 차트2 또는 차트3에서 매수신호 발생중이면 매수
if (SK1 == 1 && ( SK2 == 1 || SK3 == 1) )
{
//1계약 신호가격으로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩buy.wav");
}
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 && Account1.Balance.count > 0)
{
//세 차트 중 하나라도 매수청산신호 발생하면 매수포지션 청산
if ( SK1 == 2 || SK2 == 2 || SK3 == 2 )
{
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, Signal.price, 0);
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 +10틱 이상이면 익절청산
if (MarketData1.current >= Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
// if (MarketData1.current >= Account1.Balance.avgUnitCost + 0.25)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
//현재가가 잔고평단가 대비 -10틱 이하이면 손절청산
if (MarketData1.current <= Account1.Balance.avgUnitCost - MarketData1.GetTickSize()*10 ) //10틱이상 하락하면
//if (MarketData1.current <= Account1.Balance.avgUnitCost - 0.3)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
}
}