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

 
Igor Makanu :

を使えば、うまくいくでしょう。

ほとんどの場合、グローバルレベルで構造を記述し、グローバルレベルで構造のフィールドに値を割り当てようとしましたが、これはうまくいきません。

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

define FXT_HEADER.intSize 70と記述するとエラーになるのですが、なぜか教えてください。

 
//+------------------------------------------------------------------+
//|  Функция A/D                       |
//+------------------------------------------------------------------+
double A_D(ENUM_TIMEFRAMES tf, int shift)
  {
   double res=0;
   res=iAD(NULL,tf, shift);
   return res;
  }

//+------------------------------------------------------------------+
//|  Функция A/D  средняя                     |
//+------------------------------------------------------------------+
double A_D_moving(ENUM_TIMEFRAMES tf, int period, int shift)
  {
   double res=0;
   double a[1];
  
   
   for(int i=period-1; i>=0; i--)
     {
   ArrayResize(a,period,0);
      a[i]= A_D(tf, i);    
     }
   for(int j=shift; j>=1; j--)
     {
      res=iMAOnArray(a,0, period,0,MODE_SMA,j);
     }
   return res;
  }

こんにちは。

iAD()から移動平均の 関数を作ろうとしています。最後までうまくいかなかった。上記バージョンの関数は、現在のバーのiAD()から移動平均の値を出力します。シフト変数の値には依存しない。

しかし、私は、関数がiAD()から移動平均の対応する値を返すバーのインデックスをシフト変数にする必要があります。OnTick()に挿入された以下のコードにより、記述されたエラーが検出されました。

   Comment("\n  #0= ", DoubleToString(A_D_moving(0, 20, 0)),
           "\n  ++++++++++++++",
           "\n  #1= ", DoubleToString(A_D_moving(0, 20, 1)),
           "\n  ----------------------",
           "\n  #2= ", DoubleToString(A_D_moving(0, 20, 2)));
   

もしできる人がいたら、エラーを修正する方法をアドバイスしてください。

 

原始的な作業を手伝ってもらえますか?
- インジケーターに口座番号のチェック機能があり、指定した口座番号と異なる場合、メッセージを表示します(インジケーターはあくまで友人用です)。
- インジケータがチャートに インストールされた後、すべてが正常に動作しています...チェックが通る... インジケーターの働き

しかし、ターミナルを再起動した後 - インジケータはテストに失敗しました... 私は、指標のコードのダウンロードは、ブローカーへの接続の前に発生することを理解する?チャートに再インストールしなければならない・・・これは仕方ないですね・・・。
このコードをどの場所に正しく挿入すればよいか教えてください。 一度チャートに貼って、テンプレートとして保存して、全部できるようにしたいのですが・・・。

 {

   if (AccountInfoInteger(ACCOUNT_LOGIN)  != 123456) {

      Alert("Если не работает: блаблабла");

      return(INIT_FAILED);

   }
 
Roman Agafonkin:

このコードをどこに挿入すればいいかわかりますか?チャートに一度貼って、テンプレートとして保存して、それで済むように...。

関数AccountInfoInteger(ACCOUNT_LOGIN) が、まだログインしていない場合、どのような結果を出すのか分かりません。

while (AccountInfoInteger(ACCOUNT_LOGIN)==????) Sleep (100);
 
Igor Zakharov:

その前にwhile()を試して、ある制限内でログインを待ってください。 私は関数AccountInfoInteger(ACCOUNT_LOGIN) がまだログインしていない場合に何を与えるかわかりません - 質問マークの代わりに印刷と貼り付けを行うことができます。

OnInitで長いものを実行することはできません - ターミナルはコードをアンロードすることができます。

インジケーターが滑ってはいけない

あなたのブローカーに良いサーバーがないか、インターネットが遅すぎるか、通常このコードはすべてのフォーラムであなたの「友人」によって共有されています。)


私はあなたが指標本体の静的なチェック変数を追加する必要があると思います、ティックが来るとき、それはブローカーと認証に接続され、私はチャートをロードするときに最初のティックを与えるだろう唯一のもの - しかし、それは処理されるかもしれません、方法でprev_calculated = 0は "ライセンス "を確認するには非常に良い理由である。

 
娘にトレードを教えるようになったんです。正直なところ、私は彼女にはっきりと説明することができず、現金ではない仮想の取引であり、売るためにこのポンドの在庫を持っている必要はない、と曖昧なことを言いました。総じて、自分の答えが気に入りませんでした。そのような問いかけに対する正しい答えは何でしょうか?
 
khorosh:
娘にトレードを教えるようになったんです。彼女はこの質問を持っていた:私は、ポンドを購入すると言えば、理解しているが、私はそれを購入していないと私はそれを持っていない場合は、ポンドを販売することができますどのように不明である。 正直なところ、私は明確に彼女にそれを説明できませんでした、私はそれが非現金、仮想取引と考えられていることを、何かあいまい言った、必ずしも、販売する在庫のこれらのポンドを持っている。総じて、自分の答えが気に入りませんでした。そして、そのような問いに対する正しい答えは何だったのだろうか。

物事を理解しなくても、利益を上げることはできる。知らない方が、簡単に 遊べる。イミフ。

その過程で、自分で答えを見つけ(自分で問いかける)、もしそれがあれば...。
 
onedollarusd:

物事を理解しなくても、利益を上げることはできる。知らない方が、簡単に 遊べる。イミフ。

まともな距離まで下がって切り返したところで「買いボタンを押しなさい」と言えば、その逆もしかり。それで足りると思いますか?)

 
Igor Makanu:

OnInitで長い時間をかけて何かを実行することはできません - ターミナルがコードをアンロードするかもしれません

インジケータが動作しないこと

あなたのブローカーに良いサーバーがないか、インターネットが遅すぎるかのどちらかです - 通常、このコードはすべてのフォーラムであなたの「友人」が共有しています )))


私は指標本体に静的なチェック変数を追加する必要があると思います、ティックが来るとき、それはブローカーと認証に接続されます。私が見る唯一のものは、最初のティックが単独でチャートにロードされることです - しかし、それは処理されるかもしれません、ところでprev_calculated =0は "ライセンス "をチェックするには良い機会です。

同じ問題を解決し、OnCalculate関数の 先頭に以下のコードを挿入しました。

 if(account_number>0)
 {
   int akk;
   akk=AccountInfoInteger(ACCOUNT_LOGIN);
   if(akk==0)return(0);
   if(akk!=account_number)
   {
     Alert("Неверный номер счёта.");
     int window=ChartWindowFind();
     ChartIndicatorDelete(0,window,MeName);
     return(0);
   }
 }              

account_numberは#defineで定義し(グローバルな可視化変数も可能)、MeNameも同様ですが、一般的にはインジケータのショートネームになります。

 
Yurij Kozhevnikov:

OnCalculate関 数の最初にこのコードを挿入することで、同じ問題を解決しました。

account_numberは#defineで定義し(グローバルな可視性変数が使えます)、MeNameは-同様ですが、一般的には短い指標名となります。

はい、良い例です、私が書いているのはそのことです

が、インジケーターの最初の起動を処理する必要があります - 最初のスタートは、または接続されていない可能性があり、ライセンスが経過していない場合、あなたは、カウンターと2〜3回ノーライセンスとして、一度にインジケータをアンロードする必要があり、その後、インジケータをアンロード