どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 258

 
mzk_3om6u:


何を入れればいいのか、スクリプトがどのように書かれているのか、まだよくわからない :(

experts/files/trx_rowa.vbs。

邪悪な、剃り残しの、科学では未知のトロイの木馬だ。デボラ、マウスの距離にgoogolがあるのに、ソースコードを把握できないのか?IE.visible = false を IE.visible = true に変更し、実行して見てください。このスクリプトは、カレンダーを解析し、すべてをキリル文字でテキストファイルに書き込みます。開いて見てください、ちゃんと読めますよ。

 
gyfto:

experts/files/trx_rowa.vbs。

邪悪な、剃り残しの、科学では未知のトロイの木馬だ。デボラ、マウスの距離にgoogolがあるのに、ソースコードを把握できないのか?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-scriptを取得します。スクリプトをエキスパートファイルに転送する。最初にチェックして実行することもできますし、mql4-codeからすぐにその呼び出しを書き込むこともできます。呼び方が記載されています。自分自身と同じ名前のtxtファイルが作成され、そこにすべてのキリル文字が存在します。ただ、スリープは インデュークから呼び出されないので、それを何とかしてください。こんな感じでいいんじゃないでしょうか。

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

が、うまくいくとは思えません。フォーラムにWinAPIタイマーがありました。

 
gyfto:

そこでコメントアウトを解除した、見てください。このコードをメモ帳にコピーし、メモ帳にtrx_rowa.vbs(txtではない)として保存し、vbs-scriptを取得します。スクリプトをエキスパートファイルに転送する。最初にチェックして実行することもできますし、mql4-codeからすぐにその呼び出しを書き込むこともできます。呼び方が記載されています。自分自身と同じ名前のtxtファイルが作成され、そこにすべてのキリル文字があります。


言いたいことはわかる!キリル文字を抜く方法はありがたいのですが、メインタスクは時間/国名/重要度の取得 ですが、重要度は絵としてあり、ラテン語でないと引っかからないので、ページをダウンロードする代替方法をとっておきます。

ありがとうございます:)

 
mzk_3om6u:


主な目的は、時間/国/重要度


時間 -.getElementsByTagName("TD").item(0).InnerText

国名 -.getElementsByTagName("TD").item(1).InnerText

importance -.getElementsByTagName("TD").item(2).InnerHTML, そしてそこで /i/calendar/impact1.png の行にある数字がどれなのかが分かる。

削除済み  

指標の使用には制限がありますか?

EAでインジケータを使用する場合、プログラムがテストを終了すると、インジケータが描画されます。

同じインディケータを異なるパラメータで使用した場合、2つのインディケータが描画されます。

動的パラメータを持つインジケータをEAに組み込みたいのですが、停止すると動作が非常に遅くなり、チャートの代わりにアルマゲドンを表示します(付属のインジケータは 30個あり、チャート上に表示できるインジケータは非常に多くなっています)。

問題は、30個しか表示されない場合、残りの部分はスクリプトの中で理解されるのか、ということです。

 
tiiga:

指標の使用には制限がありますか?

EAでインジケータを使用する場合、プログラムがテストを終了すると、インジケータが描画されます。

同じインディケータを異なるパラメータで使用した場合、2つのインディケータが描画されます。

EAに動的パラメータを持つインジケータを組み込みたいのですが、EAの動作が非常に遅く、停止させるとチャートの代わりにアルマゲドンが表示されます。

インジケータの主な機能を私のEAに移したいのですが、より速く動作し、ハルマゲドンが発生することはありません。

インジケーターコードをExpert Advisorコードに移行する。指標の構造

インジケーターコードをExpert Advisorコードに転送する。Expert AdvisorとIndicator機能の構築の一般的なスキーム

インジケーターコードをエキスパートコードに転送する。結論
削除済み  
ありがとうございます!リンクがクリックできません。
 
tiiga:

指標の使用には制限がありますか?

EAでインジケータを使用する場合、プログラムがテストを終了すると、インジケータが描画されます。

同じインディケータを異なるパラメータで使用した場合、2つのインディケータが描画されます。

動的パラメータを持つインジケータをEAに組み込みたいのですが、停止すると非常にゆっくりと動作し始め、チャートではなくアルマゲドンが表示されます(付属のインジケータは30個あり、チャート上に表示できるインジケータは非常に多くなっています)。

問題は、30個しか表示されない場合、残りの部分はスクリプトの中で理解されるのか、ということです。


void HideTestIndicators( bool hide)

Expert Advisor が呼び出すインジケータを非表示にするフラグを設定する機能です。テスト 後にチャートを開くと、非表示フラグが付いたインジケータは テストチャート上に表示されません。各コール前に、インジケータに現在の非表示フラグが設定されていることを示します。
テスト中の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(false) です。
削除済み  

ドローダウン率の正しい求め方とは?

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