커뮤니티
시스템 신호가 재접속시 다르게 나옵니다~
2015-12-12 15:05:01
230
글번호 93350
안녕하세요 오랜만에 질문 올립니다.
현재 YesGlobal 로 크루드 오일 시스템을 돌리고 있는데, 재접속시 매우 빈번하게 신호가 달라지는 일이 발생하여 이 부분이 손실로 연결되고 있어 문제해결 중입니다.
첨부된 파일을 보시면, BY_1_V1_A50 전략에서 재접속 안하고 실시간전략실행차트로 돌렸을때는 크루드오일에 매도신호가 없는데, 재접속을 하면 갑자기 9시 30분에 매도신호가 있었던 것으로 나옵니다.
처음 있었던 일은 아니고, 거의 1~2일에 한번 꼴로 발생하는 일입니다. 문제를 모니터링하기 위해서, 한 pc 는 서버에서 끊어진 이후에 재접속을 안하고 한 pc 는 재접속을 해서 비교해보았습니다.
첨부된 파일 중에 봉차이의심화면.jpg 를 보시면, 재접속한 화면과 재접속하지 않고 놔둔 화면의 봉이 다른데, 09:05 분의 봉을 보시면, 재접속하지 않은 실시간차트(저희가 트레이딩한 차트)는 봉이 큰 양봉 한개로, 재접속한 차트는 작은 양봉과 그 다음의 큰 양봉 두개로 분리되어 있습니다. 재접속시 신호가 달라지는 문제를 분봉이 달라지는 문제에서 시작된것이 아닌가 일단 의심해볼 수 있을 것 같습니다.
본 전략의 신호가 다르기 위해서는 di24, hd24, ld24 값이 달라야 합니다.
실시간과 재접시 이 값이 차이가 난것일텐데,
di24 함수는 아래와 같습니다.
var : BarCountInDay(0);
if BarIndex <= 0 or Date>Date[1] then
{
BarCountInDay = 0;
}
else
{
if time >=90000 and time[1] <90000 then
{
BarCountInDay = 0;
}
else if time>=0 and time<90000 Then
{
BarCountInDay = 0;
}
else
{
BarCountInDay = BarCountInDay + 1;
}
}
DI24 = BarCountInDay;
hd24값도 영향을 미치는데 함수는 아래와 같습니다.
#Description : HD24
Inputs: DaysAgo(Numeric);
Variables: Check(False);
Variables: Day1Done(0);
Array: HighArray[50](-1);
If DataCompress <= 2 Then Begin
If Date > Date[1] Then Begin
Check = True;
End;
If Check And Time >= 91500 And Time <= 151500 Then Begin
Check = False;
Day1Done = Day1Done + 1;
For Value1 = 50 DownTo 1 Begin
HighArray[Value1] = HighArray[Value1-1];
End;
HighArray[0] = High;
End;
If Day1Done>0 And High > HighArray[0] Then HighArray[0] = High;
If DaysAgo <= 50 && HighArray[DaysAgo] != -1 Then
HD24 = HighArray[DaysAgo];
End;
ld24 함수는 아래와 같습니다.
#Description : HD24
Inputs: DaysAgo(Numeric);
Variables: Check(False);
Variables: Day1Done(0);
Array: LowArray[50](-1);
If DataCompress <= 2 Then Begin
If Date > Date[1] Then Begin
Check = True;
End;
If Check And Time >= 91500 and Time <=151500 Then Begin
Check = False;
Day1Done = Day1Done + 1;
For Value1 = 50 DownTo 1 Begin
LowArray[Value1] = LowArray[Value1-1];
End;
LowArray[0] = Low;
End;
If Day1Done>0 And Low < LowArray[0] Then LowArray[0] = Low;
If DaysAgo <= 50 && LowArray[DaysAgo] != -1 Then
LD24 = LowArray[DaysAgo];
End;
신호가 달라진다면, 봉이 분리되거나 하는 이유로 di24, hd24, ld24 값이 달라지는 이유인 것 같은데, 살펴보시고 답변 부탁드리겠습니다.
야간선물 거래시 비슷한 문제로 문의드렸을때 barindex를 index 로 고쳐보라고 하셔서 해결된 적이 있는데, 그 부분도 한번 살펴봐주십시오.
감사합니다~
- 1. 봉차이의심화면.jpg (0.07 MB)
- 2. 재접속시.png (0.13 MB)
- 3. 재접속안한신호.jpg (0.27 MB)
- 4. 재접속안한신호2.jpg (0.30 MB)
답변 1
예스스탁 예스스탁 답변
2015-12-14 11:03:50
> 괴델 님이 쓴 글입니다.
> 제목 : 시스템 신호가 재접속시 다르게 나옵니다~
> 안녕하세요 오랜만에 질문 올립니다.
현재 YesGlobal 로 크루드 오일 시스템을 돌리고 있는데, 재접속시 매우 빈번하게 신호가 달라지는 일이 발생하여 이 부분이 손실로 연결되고 있어 문제해결 중입니다.
첨부된 파일을 보시면, BY_1_V1_A50 전략에서 재접속 안하고 실시간전략실행차트로 돌렸을때는 크루드오일에 매도신호가 없는데, 재접속을 하면 갑자기 9시 30분에 매도신호가 있었던 것으로 나옵니다.
처음 있었던 일은 아니고, 거의 1~2일에 한번 꼴로 발생하는 일입니다. 문제를 모니터링하기 위해서, 한 pc 는 서버에서 끊어진 이후에 재접속을 안하고 한 pc 는 재접속을 해서 비교해보았습니다.
첨부된 파일 중에 봉차이의심화면.jpg 를 보시면, 재접속한 화면과 재접속하지 않고 놔둔 화면의 봉이 다른데, 09:05 분의 봉을 보시면, 재접속하지 않은 실시간차트(저희가 트레이딩한 차트)는 봉이 큰 양봉 한개로, 재접속한 차트는 작은 양봉과 그 다음의 큰 양봉 두개로 분리되어 있습니다. 재접속시 신호가 달라지는 문제를 분봉이 달라지는 문제에서 시작된것이 아닌가 일단 의심해볼 수 있을 것 같습니다.
본 전략의 신호가 다르기 위해서는 di24, hd24, ld24 값이 달라야 합니다.
실시간과 재접시 이 값이 차이가 난것일텐데,
di24 함수는 아래와 같습니다.
var : BarCountInDay(0);
if BarIndex <= 0 or Date>Date[1] then
{
BarCountInDay = 0;
}
else
{
if time >=90000 and time[1] <90000 then
{
BarCountInDay = 0;
}
else if time>=0 and time<90000 Then
{
BarCountInDay = 0;
}
else
{
BarCountInDay = BarCountInDay + 1;
}
}
DI24 = BarCountInDay;
hd24값도 영향을 미치는데 함수는 아래와 같습니다.
#Description : HD24
Inputs: DaysAgo(Numeric);
Variables: Check(False);
Variables: Day1Done(0);
Array: HighArray[50](-1);
If DataCompress <= 2 Then Begin
If Date > Date[1] Then Begin
Check = True;
End;
If Check And Time >= 91500 And Time <= 151500 Then Begin
Check = False;
Day1Done = Day1Done + 1;
For Value1 = 50 DownTo 1 Begin
HighArray[Value1] = HighArray[Value1-1];
End;
HighArray[0] = High;
End;
If Day1Done>0 And High > HighArray[0] Then HighArray[0] = High;
If DaysAgo <= 50 && HighArray[DaysAgo] != -1 Then
HD24 = HighArray[DaysAgo];
End;
ld24 함수는 아래와 같습니다.
#Description : HD24
Inputs: DaysAgo(Numeric);
Variables: Check(False);
Variables: Day1Done(0);
Array: LowArray[50](-1);
If DataCompress <= 2 Then Begin
If Date > Date[1] Then Begin
Check = True;
End;
If Check And Time >= 91500 and Time <=151500 Then Begin
Check = False;
Day1Done = Day1Done + 1;
For Value1 = 50 DownTo 1 Begin
LowArray[Value1] = LowArray[Value1-1];
End;
LowArray[0] = Low;
End;
If Day1Done>0 And Low < LowArray[0] Then LowArray[0] = Low;
If DaysAgo <= 50 && LowArray[DaysAgo] != -1 Then
LD24 = LowArray[DaysAgo];
End;
신호가 달라진다면, 봉이 분리되거나 하는 이유로 di24, hd24, ld24 값이 달라지는 이유인 것 같은데, 살펴보시고 답변 부탁드리겠습니다.
야간선물 거래시 비슷한 문제로 문의드렸을때 barindex를 index 로 고쳐보라고 하셔서 해결된 적이 있는데, 그 부분도 한번 살펴봐주십시오.
감사합니다~
다음글
이전글