아래 예와 같이 전역변수 C2_f_rsi1, C2_f_rsi2, C2_f_rsi4에 차트에 적용된 indicator 값을 받아오는 코딩을 하려고 하는데요... case3는 잘동작하는데, 사용자정의 모듈 함수로 처리하고자 할 때 case1, case2 어떤 방식이 맞는 건가여?
var C2_f_rsi1, C2_f_rsi2, C2_f_rsi4;
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
// case1
CollectIndicators_Test1();
Main.MessageList("test1", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
// case2
CollectIndicators_Test2(C2_f_rsi1, C2_f_rsi2, C2_f_rsi4);
Main.MessageList("test2", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
// case3
C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
Main.MessageList("test3", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
}
CollectIndicators_Test1()
{
C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
}
CollectIndicators_Test2(_C2_f_rsi1, _C2_f_rsi2, _C2_f_rsi4)
{
_C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
_C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
_C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
}
답변 1
예스스탁
예스스탁 답변
2017-06-14 16:15:57
안녕하세요
예스스탁입니다.
case1과 case2는 매개변수 지정여부의 차이입니다.
함수의 매개변수로 투입해야 하는 값이 있으면 case2가 맞지만
올리신 내용에서는 따로 지정할 부분이 없으므로 case1로 처리하시면 맞습니다.
즐거운 하루되세요
> 개똥이 님이 쓴 글입니다.
> 제목 : 함수 작성 방법 검토 부탁드립니다.
> 아래 예와 같이 전역변수 C2_f_rsi1, C2_f_rsi2, C2_f_rsi4에 차트에 적용된 indicator 값을 받아오는 코딩을 하려고 하는데요... case3는 잘동작하는데, 사용자정의 모듈 함수로 처리하고자 할 때 case1, case2 어떤 방식이 맞는 건가여?
var C2_f_rsi1, C2_f_rsi2, C2_f_rsi4;
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
// case1
CollectIndicators_Test1();
Main.MessageList("test1", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
// case2
CollectIndicators_Test2(C2_f_rsi1, C2_f_rsi2, C2_f_rsi4);
Main.MessageList("test2", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
// case3
C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
Main.MessageList("test3", C2_f_rsi1.toFixed(2), C2_f_rsi2.toFixed(2), C2_f_rsi4.toFixed(2));
}
CollectIndicators_Test1()
{
C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
}
CollectIndicators_Test2(_C2_f_rsi1, _C2_f_rsi2, _C2_f_rsi4)
{
_C2_f_rsi1 = Chart_2min.GetIndicatorData("___000rsi_data1", 1, 0);
_C2_f_rsi2 = Chart_2min.GetIndicatorData("___000rsi_data1", 2, 0);
_C2_f_rsi4 = Chart_2min.GetIndicatorData("___000rsi_data1", 3, 0);
}