포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 258

 
mzk_3om6u :


나는 여전히 어디에 무엇을 삽입해야하는지 이해하지 못하고 스크립트를 작성하는 방법도 명확하지 않습니다 :(

전문가/파일 /trx_rowa.vbs

이것은 과학에 알려지지 않은 흉포하고 면도하지 않은 트로이 목마입니다. Devale, 당신의 Google은 마우스의 거리에 있습니다. 종교는 당신이 소스 코드를 이해하는 것을 허용하지 않습니까? IE.visible = false를 IE.visible = true로 변경하고 실행하고 확인하십시오. 스크립트는 캘린더를 구문 분석하고 키릴 자모의 모든 것을 텍스트 파일에 씁니다. 열어서 살펴보십시오. 모든 것이 잘 읽힙니다.

 
gyfto :

전문가/파일 /trx_rowa.vbs

이것은 과학에 알려지지 않은 흉포하고 면도하지 않은 트로이 목마입니다. Devale, 당신의 Google은 마우스의 거리에 있습니다. 종교는 당신이 소스 코드를 이해하는 것을 허용하지 않습니까? IE.visible = false를 IE.visible = true로 변경하고 실행하고 확인하십시오. 스크립트는 캘린더를 구문 분석하고 키릴 자모의 모든 것을 텍스트 파일에 씁니다. 열어서 살펴보십시오. 모든 것이 잘 읽힙니다.


'On Error Resume Next
Dim IE : Set IE = WSCript.CreateObject("InternetExplorer.Application")
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim fTxtName : fTxtName = Left(WSCript.ScriptFullName,len(WSCript.ScriptFullName)-3) & "txt"
Set TxtFile = objFSO.OpenTextFile(fTxtName, 2, True)'открываем файл для записи
IE.visible = false' браузер в фоновом режиме
IE.navigate "http://www.fxteam.ru/forex/economic-calendar/2013_49.html"
Do While IE.Busy
        WSCript.Sleep 500
loop
Do While IE.document.getElementsByClassName("tr1 rowa").Item(0).getElementsByTagName("TD").Item(4) is Nothing' пока этот элемент страницы не загрузится
        WSCript.Sleep 500' будем ждать загрузки страницы
loop
Set tr1_rowa = IE.document.getElementsByClassName("tr1 rowa")
For i = 0 to tr1_rowa.length - 1
        TxtFile.WriteLine tr1_rowa.Item(i).getElementsByTagName("TD").Item(4).InnerText
Next
Set tr0_rowa = IE.document.getElementsByClassName("tr0 rowa")
For i = 0 to tr0_rowa.length - 1
        TxtFile.WriteLine tr0_rowa.Item(i).getElementsByTagName("TD").Item(4).InnerText
Next
Set IE = Nothing' закрываем браузер
TxtFile.Close
WSCript.Quit()

어떤 종류의 텍스트를 어디에 삽입해야 하는지 진지하게 이해하지 못합니다. 먼저 하자

1. 사이트를 파일로 다운로드할 수 있습니다.

2. 추가 옵션:

2a) 기록 기능을 통해 실행(읽을 수 없는 문자가 사라지고 로그에 오류가 발생합니다. 짜증나는 일)하고 러시아어 문자를 구문 분석합니다(로그에서는 오류가 짜증나지만 작동하지 않습니다. 영향을 미치다).

2b) 모든 것을 그대로 두고 키워드로 약간 고생하고(예: monday = "ПонедельРРЅРёРє") 정보도 가져옵니다.

2c) "월요일"을 "ПонедельРРЅРёРє"로 번역하고 필요한 것을 꺼내는 함수를 작성하십시오.

함수를 작성하려고 했지만 인코딩에 대해 확실히 모르는 것이 있습니다. 아래는 원본입니다.

 string win_utf8( string s) { 
   string outputi = "" ;
   string other1 = "Ё" ;
   string other2 = "ё" ;
   string other3 = "Є" ;
   string other4 = "є" ;
   string other5 = "I" ;
   string other6 = "i" ;
   string other7 = "Ї" ;
   string other8 = "ї" ;
   for ( int i = 0 ; i < StringLen (s); i++)
   {
       if (StringGetChar(s,i) > 191 ) 
      {
         int output=StringGetChar(s,i)+ 848 ;
      }
         else 
         {
             if ( StringSubstr (s,i, 1 ) != other1)output=StringGetChar(s,i);
             else output= 1025 ; 
             if ( StringSubstr (s,i, 1 ) != other2)output=StringGetChar(s,i);
             else output= 1105 ; 
             if ( StringSubstr (s,i, 1 ) != other3)output=StringGetChar(s,i);
             else output= 1028 ; 
             if ( StringSubstr (s,i, 1 ) != other4)output=StringGetChar(s,i);
             else output= 1108 ; 
             if ( StringSubstr (s,i, 1 ) != other5)output=StringGetChar(s,i);
             else output= 1030 ; 
             if ( StringSubstr (s,i, 1 ) != other6)output=StringGetChar(s,i);
             else output= 1110 ; 
             if ( StringSubstr (s,i, 1 ) != other7)output=StringGetChar(s,i);
             else output= 1031 ; 
             if ( StringSubstr (s,i, 1 ) != other8)output=StringGetChar(s,i);
             else output= 1111 ; 
            }
   outputi=outputi+StringSetChar( "" , 0 ,output);
   }
   
   return (outputi);
}
function win_utf8($in_text) { 
   $output = "" ;
   $other[ 1025 ] = "Ё" ;
   $other[ 1105 ] = "ё" ;
   $other[ 1028 ] = "Є" ;
   $other[ 1108 ] = "є" ;
   $other[ 1030 ] = "I" ;
   $other[ 1110 ] = "i" ;
   $other[ 1031 ] = "Ї" ;
   $other[ 1111 ] = "ї" ;
   for ($i = 0 ; $i < strlen($in_text); $i++){
       if (ord($in_text{$i}) > 191 ) {
         $output.= "&#" .(ord($in_text{$i})+ 848 ). ";" ;
      } else {
         if (array_search($in_text{$i}, $other)=== false ){
            $output.=$in_text{$i};
         } else {
            $output.= "&#" .array_search($in_text{$i}, $other). ";" ;
         }
      }
   }
   return $output;
}
 
mzk_3om6u :

어떤 종류의 텍스트를 어디에 삽입해야 하는지 진지하게 이해하지 못합니다.


내가 거기에 댓글을 달았어, 봐. 이 코드를 메모장에 복사하여 붙여넣고 메모장을 trx_rowa.vbs(txt가 아님)로 저장하고 vbs 스크립트를 가져옵니다. 스크립트를 전문가 파일로 전송합니다. 먼저 확인하고 실행할 수 있으며 mql4 코드에서 호출을 즉시 작성할 수 있습니다. 전화하는 방법, 가져 왔습니다. 그것은 자신과 같은 이름을 가진 txt 파일을 만들고 모든 키릴 문자가 있습니다. 유일한 것은 당신이 칠면조에서 을 잘 수 없다는 것입니다. 당신은 밖으로 나와야합니다. 다음과 같을 수 있습니다.

 datetime myTimer = TimeCurrent () + 60 ;
while ( TimeCurrent () < myTimer){}
//дальше код...

그러나 작동하지 않을 것입니다. 포럼에는 WinAPI에 대한 타이머가 있었습니다.

 
gyfto :

내가 거기에 댓글을 달았어, 봐. 이 코드를 메모장에 복사하여 붙여넣고 메모장을 trx_rowa.vbs(txt가 아님)로 저장하고 vbs 스크립트를 가져옵니다. 스크립트를 전문가 파일로 전송합니다. 먼저 확인하고 실행할 수 있으며 mql4 코드에서 호출을 즉시 작성할 수 있습니다. 전화하는 방법, 가져 왔습니다. 그것은 자신과 같은 이름을 가진 txt 파일을 만들고 모든 키릴 문자가 있습니다.


당신을 이해했습니다! 키릴 자모를 뽑아내는 방법에 감사드립니다. 그러나 주요 임무는 time\country\importance 를 얻는 것 입니다. 그러나 중요성은 그림처럼 거기에 가고 라틴어로만 잡을 수 있습니다. 그렇지 않으면 내가 대안을 구할 것입니다. 페이지를 다운로드하는 방법.

감사해요:)

 
mzk_3om6u :


주요 임무는 시간\국가\중요성을 얻는 것입니다


시간 - .getElementsByTagName("TD") .item(0).InnerText

국가 - .getElementsByTagName("TD") .item(1).InnerText

중요도 - .getElementsByTagName("TD") .item(2).InnerHTML, 거기에서 이미 /i/calendar/impact 1 .png 줄에 있는 숫자를 인식하고 있습니다.

 

지표 사용에 제한이 있습니까?

어드바이저에서 지표를 사용하면 프로그램이 테스트를 마치면 지표가 그려집니다.

하나의 동일한 표시기이지만 매개변수가 다른 경우 두 개가 그려집니다.

내 고문에 동적 매개 변수가 있는 칠면조를 포함하고 싶습니다. 고문은 매우 느리게 작동하기 시작했고 중지되면 차트 대신 아마게디언을 표시합니다(30개의 연결된 표시기 - 차트에 너무 많이 표시할 수 있음).

문제는 30개만 표시하는 경우 스크립트 내부의 나머지 부분을 이해합니까?

 
tiiga :

지표 사용에 제한이 있습니까?

어드바이저에서 지표를 사용하면 프로그램이 테스트를 마치면 지표가 그려집니다.

하나의 동일한 표시기이지만 매개변수가 다른 경우 두 개가 그려집니다.

내 고문에 동적 매개 변수가 있는 칠면조를 포함하고 싶습니다. 고문은 매우 느리게 작동하기 시작했고 중지되면 그래프 대신 아마게디언이 표시됩니다.

표시기의 주요 기능을 전문가 고문에게 이전하십시오. 그러면 아마지안이 없으면 더 빨리 작동합니다.

지표 코드를 전문가 코드로 전송합니다. 표시기의 구조.

지표 코드를 전문가 코드로 전송합니다. Expert Advisor 및 지표 기능의 구조에 대한 일반 체계

지표 코드를 전문가 코드로 전송합니다. 결론
 
감사하다! 귀하의 링크가 클릭되지 않습니다
 
tiiga :

지표 사용에 제한이 있습니까?

어드바이저에서 지표를 사용하면 프로그램이 테스트를 마치면 지표가 그려집니다.

하나의 동일한 표시기이지만 매개변수가 다른 경우 두 개가 그려집니다.

내 고문에 동적 매개 변수가 있는 칠면조를 포함하고 싶습니다. 고문은 매우 느리게 작동하기 시작했고 중지되면 차트 대신 아마게디언을 표시합니다(30개의 연결된 표시기 - 차트에 너무 많이 표시할 수 있음).

문제는 30개만 표시하는 경우 스크립트 내부의 나머지 부분을 이해합니까?


무효의 HideTestIndicators ( 부울 숨기기)

이 함수는 EA에서 호출한 표시기를 숨기기 위한 플래그를 설정합니다. 테스트 후 차트를 열 때 숨김 플래그가 표시된 지표 는 테스트 차트에 표시되지 않습니다. 각 호출 전에 표시기는 현재 설정된 숨기기 플래그로 표시됩니다.
테스트된 Expert Advisor에서 직접 호출된 지표만 테스트 차트에 표시될 수 있다는 점에 유의해야 합니다.
옵션:
숨다 - TRUE - 표시기를 숨기려면 그렇지 않으면 FALSE입니다.
예시:
 HideTestIndicators(true);
   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0);
   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1);
   HideTestIndicators(거짓);
 

드로다운 비율을 찾기 위해 올바르게 작성하는 방법은 무엇입니까?

(DoubleToStr(AccountBalance(), 2) - DoubleToStr(AccountFreeMargin(), 2)) * 100