MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 345

 
Сергей:

あなたの言うことはよくわかるけど、あなたは間違っている。

逆コンマを入れると、こうなる。

'EURUSD' - name expected MyIndi 3 (MA).mq4 61 14

そして、ここでの引用はどこでしょうか?

EURUSDの

 
Artyom Trishkin:

倒置コンマはどこ?


私のコードの引用符は二重で、エラーでは一重引用符が表示され、どうしようもありません。

ウィンドウにデータを出力するのは問題ないのですが。問題は、間違った出力にある。フラット」ではなく「アテンション!」と言ったり、その逆もあります。アルゴリズムは初歩的なもので、どこで失敗したのかわからないのですが......。

コンパイルも問題ないです。コード番号3437で投稿してください。

 

インジケーター本体https://cloud.mail.ru/public/6Ney/gTq1xMcMd

ここでJPYのチャートが結果を変えるという問題提起をしました。

問題のインジケータはこちらhttps://cloud.mail.ru/public/CAXu/p3uD3UzBJ .あの時は質問に答えてもらえなかったけど、今は助けてくれるの?
 
Сергей:

私のコードではダブルクォーテーションを使用していますが、エラーではシングルクォーテーションが表示され、どうすることもできません。

ウィンドウにデータを出力するのは問題ないのですが。問題は、間違った結果にある。フラット」ではなく「アテンション!」と言ったり、その逆もあります。アルゴリズムは初歩的なもので、どこで失敗したのかわからないのですが......。

コンパイルも問題ないです。コード番号3437で投稿してください。

人々が推測し、あなたが話していることをきちんと理解できるように、入力するポストエディタに そのためのすべてのオプションが用意されているのです。

をクリックすると、コードをファイルとして添付することができます(下部に+Add fileが あります)。

として出力することができます。

例えば

//+------------------------------------------------------------------+
//| Выводит в журнал список свечей серии                             |
//+------------------------------------------------------------------+
void CSeriesCollection::PrintListCandlesSeries(const uint num_candle)
  {
   int total=m_series.Total();
   ::Print("====== "+TextByLanguage("Список свечей тайм-серии","List of time series candles")+" ======");
   for(int i=0; i<total; i++){
      CCandleObject* candle=m_series.At(i);
      if(candle!=NULL){
         datetime time=candle.Time();
         if(time<TimeCurrent()-PeriodSeconds()*num_candle) continue;
         string tm=TimeToString(candle.Time());
         this.PrintCandle(candle);
         }
      }
   ::Print("====== "+TextByLanguage("Список свечей тайм-серии","List of time series candles")+" ======");
  }
//+------------------------------------------------------------------+

ログ行をコードとして表示することもできます(端末のログからコピーして、ここにコードとして貼り付けることができます(SRCボタン))。

2017.10.20 04:04:09.014 Свеча NZDUSD 2017.10.20 00:00, open: 0.70296, high: 0.70360, low: 0.70260, close: 0.70355, vol tick: 87, размер: 100, тело: 59, верх. тень: 5, нижн. тень: 36, тип: Бычья

と言えば、誤解されることはないでしょう。

そして、サードパーティのリソースに人を送り込み、そこから何かわからないものをダウンロードさせるというのは、あまりフレンドリーではありませんよね。

 
Сергей:
...

コンパイルも問題なし。コード番号3437で投稿してください。

3437を クリックし、「リンクをコピー」を選択して、リンクを投稿に貼り付けることができます。

 
Artyom Trishkin:

また、第三者のリソースを紹介して、そこから何でもいいからダウンロードさせるというのは、あまりフレンドリーではありませんよね。


文盲をお許しください。


MyIndi 1 MultiValue on MultiTimeFrames.一番下には購入ポイント数が表示されます。

MyIndi 2 1と同じだが、不要なデータを削除した。下部にデータを追加 - これは、異なる時間枠の1分あたりの平均価格変化です。

MyIndi 3は多通貨対応です。シフト付きのシングルMAをベースにしています。MAの差に達すると、"Warning!"と表示されます。


この3つは、JPYを含むチャートに添付すると、(なぜか)すべて正しく動作しません。MyIndi 3は、非常にシンプルなコードですが、全く正常に動作しません。

もちろん、どれも初めてなので、どこが悪いのかわからないのですが...。どなたかお時間のある方、解決してくださる方がいらっしゃいましたら、ぜひお願いします。
ファイル:
MyIndi.mq4  54 kb
MyIndi_2.mq4  38 kb
 
Сергей:

文盲をお許しください。


MyIndi 1 MultiTimeFramesで多通貨。一番下には購入ポイント数が表示されます。

MyIndi 2 最初のものと同じだが、不要なデータを削除した。下部にデータを追加 - これは、異なる時間枠の1分あたりの平均価格変化です。

MyIndi 3は多通貨対応です。シフト付きのシングルMAをベースにしています。MAの差に達すると、「警告!」と表示されます。


この3つは、JPYを含むチャートに添付すると、(なぜか)すべて正しく動作しません。MyIndi 3は、コードは非常にシンプルなのですが、全く正常に動作しないのです。

そしてもちろん、この件に関しては素人なので、すべての誤りを見つけることはできません。もし、お時間のある方がいらっしゃいましたら、ご理解とご協力をお願いします。

ポイント」を見てください、JPYが違うんです。MarketInfoを利用する。例えば、double EUR_point=MarketInfo("EURUSD",MODE_POINT) 。

 
Nauris Zukas:

ポイント」を見てください、JPYは違います。MarketInfoを利用する。例えば、double EUR_point=MarketInfo("EURUSD",MODE_POINT) 。

ありがとうございます!試してみます。それが問題なのだと見当はついていたが、どうすればいいのかわからなかった。


うまくいった!親切な方、どうもありがとうございました。=)

冒頭で追加した

      double USD_point=MarketInfo("EURUSD",MODE_POINT);
      double JPY_point=MarketInfo("USDJPY",MODE_POINT); 

で、どのペアを処理するかによって(JPYあり、なし)どちらかの変数を使用しました。

 
Nauris Zukas:

Pointを見てください、JPYが違うんです。MarketInfoを利用する。例えば、double EUR_point=MarketInfo("EURUSD",MODE_POINT) 。

すぐに行ったほうがいいんです。

Point
SymbolInfoDouble(Symbol(),SYMBOL_POINT)
 
Vitaly Muzichenko:

一度に良くなる。


Nauris Zukas 氏の提案するバリエーションは、多通貨に適していると思います。

そして、あなたのバリアントは、添付されているチャートからデータを取るので、単一通貨には適しています。