답변완료
수식 오류 확인 부탁드립니다.
다음 수식으로 차트와 연결하여 사용하려고 하는데 주문이 나갈때도 있고
안나갈때도 있습니다.
무엇이 잘 못되었는지 검증 부탁드립니다.
var T,YYYYMMDD,daycount;
var d = new Date();
var T1 = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
function Main_OnStart()
{
Main.MessageList("Start");
T = 0;
var d = new Date();
YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();
Main.SetTimer(1, 5000);
if (Main.GetUserValue(YYYYMMDD) == "20200611")
{
daycount = true;
}
else
{
daycount = false;
}
}
function Chart1_OnRiseSignal(Signal)
{
if (T1>=90400 && Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Ask(5), 0);
}
if (T1>=90400 && Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, 0, 1);
}
if (T1>=90400 && Signal.signalKind == 3)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Bid(5), 0);
}
if (T1>=90400 && Signal.signalKind == 4)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, 0, 1);
}
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var T1 = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (nEventID == 1 && daycount == true && T1>=152100)
{
Main.KillTimer(1);
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1);
}
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);
}
}
if (nEventID == 1 && daycount == false && T1>=153600)
{
Main.KillTimer(1);
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1);
}
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1);
}
}
}
2020-04-17
3526
글번호 225198
답변완료
스팟 스크립트에서 5분봉, 10분봉, 15분봉별로 매매하고자 경우, 선별은?
안녕하세요.
제가 단일 스팟 스크립트에서 같은 전략으로 분봉만 다르게 하여 5분봉, 10분봉, 15분동 3개 돌리고자 합니다.
아래는 제가 실제 구성해서 사용하고 있는 것으로 현재는 5분봉에 대해서만 사용합니다.
스크립트 객체는
1. Main
2. Account1
3. ChartEx1
YS 코드
function Main_OnRiseSignal(ChartEx, Signal)
{
if(Signal.signalKind == 1)
{
}
}
제가 생각하는 방법으로는 ..
위 코드에 3개 분봉 CharEx을 만들어서 하면 될것 같습니다.
3. ChartEx1 <-- 5분봉
4. ChartEx2 <-- 10분봉
5. ChartEx3 <-- 15분봉
이렇게 하면 , OnRiseSignal 함수도
function Main_OnRiseSignal(ChartEx1, Signal)
{
}
function Main_OnRiseSignal(ChartEx2, Signal)
{
}
function Main_OnRiseSignal(ChartEx3, Signal)
{
}
A. 이렇게 만들면 되는지요?
B. 매매수량은 각 차트의 signal.count 로 사용해도 구분되는지요?
2020-04-16
3526
글번호 225197