코딩 도움말 - 페이지 701

 
AtApi :

안녕하세요 코드 전문가 여러분,

CSV 파일에서 자체 값을 표시하는 간단한 표시기를 찾고 있습니다. 누군가 저를 도와주시겠습니까?

미리 감사드립니다!

"자체 가치"은(는) 무슨 뜻인가요?
 
mladen :
"자신의 가치"은(는) 무슨 뜻인가요?

mladen님, 감사합니다.

좀 더 잘 설명하겠습니다. CVS 파일에서 값을 읽고 하위 창에 값을 표시하는 표시기가 필요합니다. CVS에는 쉼표로 구분된 2개의 값이 있습니다. 첫 번째 값은 날짜이고 두 번째 값은 실제 값입니다. 표시기가 플롯해야 합니다.

예를 들어

CVS는 다음과 같습니다.

date,value
2016.10.26.05.55,126.845
2016.10.26.05.50,126.848
2016.10.26.05.45,126.844
2016.10.26.05.40,126.82
2016.10.26.05.35,126.816
2016.10.26.05.30,126.81

표시기는 날짜에 따라 값을 표시합니다.

이제 좀 더 명확해지기를 바랍니다.

도와줘서 고마워!

 

친구에게,

코딩을 해야 하고,

양초 닫고 양초가 UP이면 UP , DOWN이면 언제든지 경보 DOWN

당신이 pls가 나를 공유한다면,

미리 감사합니다.

- 징징

 
앗아피:

mladen님, 감사합니다.

좀 더 잘 설명하겠습니다. CVS 파일에서 값을 읽고 하위 창에 값을 표시하는 표시기가 필요합니다. CVS에는 쉼표로 구분된 2개의 값이 있습니다. 첫 번째 값은 날짜이고 두 번째 값은 실제 값입니다. 표시기가 플롯해야 합니다.

예를 들어

CVS는 다음과 같습니다.

시간, 가치

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

표시기는 날짜에 따라 값을 표시합니다.

이제 좀 더 명확해지기를 바랍니다.

도와줘서 고마워!

그것이 내가 지금까지 달성한 것입니다.

 extern    string    FileName    = "AUDCAD.CSV" ;
datetime    dt[ 9999 ];
double      val[ 9999 ];

string      arr[ 2 ];    

int h = FileOpen (FileName, FILE_CSV | FILE_READ , '~' );
   if (h== 0 )   Comment ( "File " +FileName+ " not found." );

  
   for ( int c= 0 ; ! FileIsEnding (h) && c< 9999 ; c++)  {

  
     string tmp = FileReadString (h);
     if ( FileIsEnding (h))   break ;
    StrToStringArray(tmp,arr, "," );
    dt[c]  = StrToTime (arr[ 0 ]);   // <==== This should convert the date value (in the format of "yyyy.mm.dd hh:mi") to datatime type and assign it to the array
    val[c] = StrToNumber(arr[ 1 ]); // <==== This will assign the value to the array
   

  }
   FileClose (h);

//+------------------------------------------------------------------+
void StrToStringArray( string str, string &a[], string delim= "," )  {
//+------------------------------------------------------------------+
   int z1=- 1 , z2= 0 ;
   for ( int i= 0 ; i< ArraySize (a); i++)  {
    z2 = StringFind (str,delim,z1+ 1 );
    a[i] = StringSubstr (str,z1+ 1 ,z2-z1- 1 );
     if (z2 >= StringLen (str)- 1 )   break ;
    z1 = z2;
    
  }
}
//+------------------------------------------------------------------+
double StrToNumber( string str)  {
//+------------------------------------------------------------------+
// Usage: strips all non-numeric characters out of a string
   int     dp   = - 1 ;
   int     sgn  = 1 ;
   double num  = 0.0 ;
   for ( int i= 0 ; i< StringLen (str); i++)  {
     string s = StringSubstr (str,i, 1 );
     if (s == "-" )  sgn = -sgn;   else
     if (s == "." )  dp = 0 ;       else
     if (s >= "0" && s <= "9" )  {
       if (dp >= 0 )  dp++;
       if (dp > 0 )
        num = num + StrToInteger (s) / MathPow ( 10 ,dp);
       else
        num = num * 10 + StrToInteger (s);
    }
  }
   return (num*sgn);
}
나는 왜 내가 dt[c]를 인쇄하면 항상 같은 값을 반환하는지 잘 모르겠습니다. 루프의 모든 반복에서 arr[0]이 변경되더라도 시간은 절대 변경되지 않습니다.
 이 후에 우리는 그 시간과 함께 막대에 값을 할당해야 합니다. 하지만 멈췄습니다.

	          
 
AtApi :
앗아피:

mladen님, 감사합니다.

좀 더 잘 설명하겠습니다. CVS 파일에서 값을 읽고 하위 창에 값을 표시하는 표시기가 필요합니다. CVS에는 쉼표로 구분된 2개의 값이 있습니다. 첫 번째 값은 날짜이고 두 번째 값은 실제 값입니다. 표시기가 플롯해야 합니다.

예를 들어

CVS는 다음과 같습니다.

시간, 가치

2016.10.26.21.20,127.765

2016.10.26.21.15,127.777

2016.10.26.21.10,127.777

2016.10.26.21.05,127.799

2016.10.26.21.00,127.791

2016.10.26.20.55,127.788

표시기는 날짜에 따라 값을 표시합니다.

이제 좀 더 명확해지기를 바랍니다.

도와줘서 고마워!

그것이 내가 지금까지 달성한 것입니다.

신경 쓰지 마세요. 문제를 해결했습니다. SrtToTime은 "yyyy.mm.dd hh:mi" 형식의 문자열만 허용합니다. 즉, "yyyy.mm.dd hh.mi" 대신 이 형식으로 CSV를 로드하고 있음을 의미합니다. "그리고 분명히 나에게 오류가 발생했습니다. 어쨌든 해결했습니다!
 

안녕하세요

mladen 씨:

새로운 mt4 빌드를 위해 업데이트할 수 있습니다.

안부

파일:
 

누구든지 이 3가지 문제를 해결하는 데 도움을 줄 수 있습니까?

1. 후행 오류 수정

2. 두 번째 시간 프레임 필터를 제거 하면 시스템이 30m 채팅에서 실행됩니다.

3. 1D 채팅에 첨부된 지표를 필터로 추가

 

@친애하는 친구,

내 ea는 아래 오류를 제공합니다.

" EURUSD+,M5: OrderDelete 기능 에 대한 알 수 없는 티켓 21847676 "

이 문장은 무엇을 의미합니까? 문제는 무엇이며 무엇을 할 수 있습니까?

 
oguz :

@친애하는 친구,

내 ea는 아래 문제를 제공합니다.

" EURUSD+,M5: StringConcatenate(function "에 대한 알 수 없는 티켓 21847676

이 문장은 무엇을 의미합니까? 문제가 무엇입니까?

어떡해?

삭제할 수 있는 티켓 번호가 21847676 인 주문을 찾을 수 없다는 의미입니다.

어느 하나 :

  • 티켓 번호가 잘못되었습니다
  • 또는 그 사이에 주문이 이미 삭제되었습니다(2개의 EA 또는 루프가 제대로 확인 되지 않았거나 이와 유사한 ...)
 

안녕하세요 mladen 씨

이 그림과 유사한 MTF 별도 차트에 이 표시기를 넣는 데 도움을 줄 수 있습니까?

관심

파일:
xb4d_2.mq4  4 kb
사유: