답변완료
문의 드립니다.
도저히 해결이 않되서 문의 드립니다.
아래의 코드는 동일한 코드입니다.
다만 1번 코드는 전략챠트에 참조데이터가 62개있고
그중 19째 데이터값(일일시가)을 디버깅하고
2번 코드는 전략챠트에 참조데이터가 2개있고
2번째 데이터값(일일시가)을 디버깅하게 되어있습니다.
제가 궁금한것은 참조데이터가 2개인 챠트에서는
2번코드가 정상작동 하였는데
참조데이터가 62개인 챠트에서는
1, 2번 코드 모두 디버깅값이 출력되지 않았습니다.
참조데이터는 옵션 행사가입니다.
32비트 , 64비트 동일했습니다.
제가 이해하기로는 참조데이터값은 data99번까지
사용 가능한것으로 알고있는데요...
제가 프로그램을 잘못 설정한 부분이 있는지
혹은 제 시스템이 문제인지 궁금합니다.
Win10 , 메모리 24G 사용중입니다.
code 1
Variables: 기준일(20230618) ;
Array: Call_Day_O[70](0) ;
if sdate > 기준일 Then {
Call_Day_O[19] = data19(Dayopen) ;
MessageLog(" 일일시가 = %.2f " , Call_Day_O[19] ) ;
}
code 2
Variables: 기준일(20230618) ;
Array: Call_Day_O[70](0) ;
if sdate > 기준일 Then {
Call_Day_O[19] = data2(Dayopen) ;
MessageLog(" 일일시가 = %.2f " , Call_Day_O[19] ) ;
}
감사합니다.
2023-06-24
948
글번호 170055
검색
답변완료
행복; 지표식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
지표식 관련입니다
<<질문>>
- 기준봉; 1분봉
- 전일 종가가 상한가 이고 오늘 고가가 전일대비 10% 이상 상승한 경우 1을 표시할 것
<참조; 기준봉이 일봉일 때,
전일 종가가 상한가이고 오늘 고가가 전일대비 10% 이상 상승한 경우 1을 표시할 것은 아래와 같은데 기준봉이 분봉일 때는 어떻게 해야 할까요?>
-----------------------< 아래 >------------------------------
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
if date >= 19981207 then
{
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if date >= 20230125 Then
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
Else
{
if CodeCategory() == 2 then
{
if date >= 20030721 then
{
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
}
if CodeCategory() == 1 || CodeCategory() == 2 then
{
if date >= 20230125 Then
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 200000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=200000, up2, up3);
Else If BP >= 20000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=20000, up4, up5);
Else If BP >= 2000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=2000, up6, up7);
}
Else
{
if sdate < 20101004 Then
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
if close[1] == 상한가[1] and high >= dayclose(1) * 1.1 then
plot1(1);
Else
Plot1(0);
-------------------------------------------------------
수고하십시요^^
2023-06-23
1147
글번호 170040
지표
답변완료
수식확인
안녕하세요
매수후매도
신호가 나와야 하는데 안나옴
확인해주세요
파일참조
Inputs : DDD(20150309), LEN(300), HL_ED(60), CC(Black);
Vars : DBN(0), KK(0), DD(0), KK2(0), DD2(0),T(0),mav(0);
If STime >= 080000 And STime[1] < 080000 Then Begin
DBN = 0;
KK = 0;
DD = 0;
KK2 = 0;
DD2 = 0;
T = 0;
End;
DBN = DBN + 1;
If STime >= 083000 And DD == 0 Then Begin
Value2 = O;
DD = 1;
KK = DBN;
var1 = 0;
var2 = 0;
End;
mav = ma(C,10);
if DD == 1 Then
{
if CrossUp(C,value2) Then
{
T = 1;
}
if CrossDown(C,Value2) Then
{
T = -1;
}
if T == 1 and CrossUp(C,mav) Then
{
T = 2;
Buy();
}
if T == -1 and CrossDown(C,mav) Then
{
T = -2;
Sell();
}
}
2023-06-23
1160
글번호 170032
시스템