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

 
evillive:

ヘルプを読めば、例題付きで書いてある。


ありがとうございました。
 

ファイルデータからインジケータを描画することを思いつきました。

教科書に載っている例を取り上げてみました。私のニーズに合わせてスクリプトを作り直した。

int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       shift,Text;                            // Стиль вертикальной линии
   string File_Name="News.csv",        // Имя файла
          Obj_Name,                    // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Str_DtTm;                    // Дата и время события(строка)
   datetime Dat_DtTm;                  // Дата и время события(дата)
//--------------------------------------------------------------- 3 --
   Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
   if(Handle<0)                        // Неудача при открытии файла
     {
      if(GetLastError()==4103)         // Если файла не существует,..
         Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера 
      else                             // При любой другой ошибке..
         Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
      PlaySound("Bzrrr.wav");          // Звуковое сопровождение
      return(0);                          // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
     {                                // ..указатель не в конце файла
      //--------------------------------------------------------- 5 --
      Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
      Text     =FileReadString(Handle);// Текст описания события
      //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
      //--------------------------------------------------------- 7 --
      shift=iBarShift(NULL,0,Dat_DtTm);
      Alert("Время=",TimeToString(Time[shift]),"Text=",Text); 
      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
      break;                        // Выход из чтения и рисования
     }
//--------------------------------------------------------------- 8 --
   FileClose( Handle );                // Закрываем файл
   return(0);                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

Alert」の行は削除することができます。

ロジックとしては、インジケータで日付を取得し、ファイルと比較し、同じであればバッファに値を代入しています。

しかし、すでにデータが考慮されているファイルの先頭から各バーについて検索を始めると、かなりのコストがかかると思います。

問題は、インジケータで処理されたファイル行を固定し、その後に検索を開始する方法です。

 
Forexman77:

この「20141231」という形式の日付が入った大きなファイルがあります。文字列を日付 形式に変換するには、年、月、数字の間に「YYYY.MM.DD」のドットが必要 です。

どうすればいいのでしょうか。

string sdt="20141231"
string dt=StringSubstr(sdt,0,4)+"."+StringSubstr(sdt,4,2)+"."+StringSubstr(sdt,6,2)
 
vicmos:

ありがとうございます、もう整理しました。元々カンマで区切られていたところを変換。カンマをドットに変更し、さらに2列目を追加し、すべて「uniCSVed」としました。

これで、プログラム的にどうすればいいのかがわかる。

このデータを使って、どのような指標を実現するかという、もう一つの大きな課題に直面しています。スクリプトを作りましたが、正常に動作しています。

しかし、インジケータでは、ブレーキを持っていないために、私は何とかデータの最後の繰り返しで取得した行を覚えておく必要があります。

 
Forexman77:

ありがとうございます、もう整理しました。元々カンマで区切られていたところを変換。カンマをドットに変更し、さらに2列目を追加し、すべて「uniCSVed」としました。

これで、プログラム的にどうすればいいのかがわかる。

このデータを使って、どのような指標を実現するかという、もう一つの大きな課題に直面しています。スクリプトを作りましたが、正常に動作しています。

しかし、インジケータでは、ブレーキを持っていないために、私は何とかデータの最後の繰り返しで取得した行を覚えておく必要があります。

おそらく FileTell(該当するオープン ファイルのファイルポインタの現在位置を返す)、 FileSeek(ファイルポインタの位置を指定した位置から指定したバイト数だけ相対的に 移動させる)などで可能 でしょう。
 
evillive:
FileTell(対応するオープンファイルのファイルポインタの現在位置を返す)、 FileSeek(ファイルポインタの位置を指定位置から指定バイト 数だけ移動させる)などで 可能だと思わ れます。

ありがとうございました。また、このような機能にも注目しました。 またFileIsLineEndingもある。どうすればいいのか、さらに考えてみます。

 
lexdemon:
Ticket_first_orderはどのように定義するのですか?

OrderTicket()の値を 変数に代入する。例:int Ticket= OrderTicket().そして、この値をOrderSelectで使用します。

OrderSelect(Ticket,SELECT_BY_TICKET); .

別の方法でいいんです。チケットは定義せず、(SELECT_BY_POS)を試してオーダーを見つけるだけとします。

手に入れることができます。

 string Symb=Symbol();

for(i=0;i<=OrdersTotal() ;i++)

   if(OrderSelect(i,SELECT_BY_POS)==true)

 {

   if(OrderSymbol()!=Symb)continue;

   if(OrderType()==OP_BUY)

     {

   break;

     }

   }

}

 

  if(OrderOpenPrice()+10*Point<=Ask)

 OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

 

 
CJIeCaPb:

OrderTicket()の値を変数に代入する。例:int Ticket= OrderTicket().そして、この値をOrderSelectで使用します。

OrderSelect(Ticket,SELECT_BY_TICKET); .

別のやり方でもいいんです。チケットは定義せず、試しにオーダーを検索してみましょう(SELECT_BY_POS)。

きっとうまくいく。

ブルートフォース方式がより真実に近い
 

ここは初心者のためのトピックなので、私も質問させてください...。

1.見積書をダウンロードするためのソフトウェアAPIはありますか?理想はget/postリクエストです。

2.もし、広範なアクセスに対応するものがないのであれば、解析が容易で、1秒に1回、相場へのリアルタイムアクセスを提供できるプラットフォームは何でしょうか。

3.もちろん、オートメーションは何にでも書けます。でもやっぱり、どの言語やツールが一番便利で人気があるのか知りたいですよね。

 
例えば、ここhttps://iqoption.com/us/options/turbo(そこにログインしている人がいれば)、非常に優れたリアルタイムグラフです。理想は解析することなのですが、FireBugではスクリプトが引用符を取得 しに行くところが表示されません。チャートには1秒ごとに点がついています。