답변완료
지표값을 Tick Size 단위로 변환시 이상현상 문의합니다.
문의에 항상 빠른 답변에 감사드립니다.
제가 하고자 하는 것은 지표값을 구하여 그 지표값을 주문 가격에 이용하고자 틱 사이즈 단위로 변환하여 수치을 구하고자 합니다.
GetTickSize 함수로 마이크로 골드 종목을 구하면 0.1000000...
소수점 이하 많은 양이 나오네요.
그래서 0.1로 조정을 했습니다.
그런데 TickSize 값은 0.1로 잘 나오는데, BBC1, BBU1, BBD1 등 값은 0.1단위로
나올때도 있고 수수점 이하 많은 자리가 나올때도 있는 등 들쑥날쑥이네요.
제가 무엇을 잘못 했나요?!
아래 식은 제가 일부분을 발췌하였습니다.
var TickSize = F1.GetTickSize();//: 호가단위 : NH 실제:소수점 이하 10이상 존재
TickSize = Math.floor(TickSize*1000000)/1000000; // 종목 적용시 소수점 이하 6자리까지 적용가능
var BBC1 = C1.GetIndicatorData("Bollinger Bands", 1,0); //BB지표
var BBU1 = C1.GetIndicatorData("Bollinger Bands", 2,0);
var BBD1 = C1.GetIndicatorData("Bollinger Bands", 3,0);
Main.MessageList("상단 : " + BBU1 +
", 하단 : "+ BBD1 +
", 중심선 : "+ BBC1
);
//TickSize로 Price 변경 Math.floor(A / TickSize)*TickSize
Main.MessageList("틱 사이즈 : " + TickSize);
BBC1 = Math.floor(BBC1 / TickSize)*TickSize; //TickSize 단위로 내림
BBU1 = Math.floor(BBU1 / TickSize)*TickSize;
BBD1 = Math.floor(BBD1 / TickSize)*TickSize;
Main.MessageList("1분봉 틱 조정 상단 : " + BBU1 +
", 하단 : "+ BBD1 +
", 중심선 : "+ BBC1
);
갑사합니다.
2021-06-30
2595
글번호 225509
답변완료
문의드립니다
/*스크립트시작-----------------------------------------------------*/
function Main_OnStart()
{
Main.MessageLog("시작")
Main.SetTimer(1, 5000);
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMDD = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (nEventID == 1 && HHMMDD >= 150600)
{
Main.KillTimer(1);
num = A1.GetTheNumberOfBalances();
for(var i = 0; i < num; i++)
{
A1.SetBalanceIndex(i);
if (A1.Balance.position == 1)
A1.OrderBuy(A1.Balance.code,A1.Balance.count,0,1);
if (A1.Balance.position == 2)
A1.OrderSell(A1.Balance.code,A1.Balance.count,0,1);
}
}
}/*스크립트끝-------------------------------------------------------*/
메뉴얼에 나와있는 동시호가 청산 수식 예제입니다.
잔고를 모두 청산하게 되어있는데
통장잔고를 모두 청산하는 방식이 아닌 특정 차트를 동시호가 청산하는 방식을 하고자 합니다.
꼭 필요한 방식인데 스팟에 너무 무능해서 모르겠네요
언제나 감사드립니다.
2021-06-03
2820
글번호 225496