初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 75

 
mario065:

それを開くための関数が書かれています。

'=' - l-value required 

エラーを出した。

した。

 if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
if(SL = 0 && T_P = 0)
{
  ModifyPosition(_Symbol,NormalizeDouble((Open - 0.003),Digits()),NormalizeDouble((Open + 0.003),Digits()));
}

и

if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
    {
    if(!PositionGetDouble(POSITION_SL))
      {
      PositionModify(_Symbol,NormalizeDouble((Open-STR),Digits()),NormalizeDouble((Open+TP),Digits()));
      }

ちがうのか

どちらの場合もTickではなく、新しいBarの開始でstoplossが設定されているのでしょう。

サーバーが許可しないので、注文を開くときにストップロスとテイクプロフィットを送ることができません。最初に注文を開き、その後に修正する必要があります。

 
Lester:

エラーを出した。

した。

и

ちがうのか

どちらの場合もTickではなく、新しいBarの開始でstoplossを出すのでしょう。

注文を出すときにStopLossとTakeProfitを送ることができないのですが、サーバーがそれを許可しないからです。最初に注文を開き、その後で修正する必要があります。

if(SL == 0 && T_P == 0)

すみません、等号が2つ必要なんですね......確認せず、直接書きました。

 

オンティック

NewTick イベントは、Expert Advisorが 接続されているチャートのシンボルで新しいティックを受信 したときにExpert Advisorにのみ生成さ れます。 カスタムインジケータやスクリプトではTickイベントが発生しないため、OnTick()関数を定義しても意味がありません。

Expert Advisor にのみ Tick イベントが発生しますが、Expert Advisor には Tick イベントだけでなく、Timer、BookEvent、ChartEvent も発生するので、Expert Advisor に必ず OnTick() 関数を持たせなければならないというわけではありません。 void型で宣言する必要が あり、パラメータを 持たない。

voidOnTick

もちろん、これはドキュメントからの情報です。

同じことではありませんか?

 

まあ、ascやbidの場合は、他の方法もありますけどね。

MqlTick  tick;
tick.ask-tick.bid
 
mario065:

まあ、ascやbidの場合は、他の方法もありますけどね。

О!これなら大丈夫!ありがとうございました! ))))
 
FinEngineer: このスレッドにMQL5開発者はいるのか!?もしかして、間違った枝で質問しているのでしょうか?では、開発者に質問する方法を教えてください。上記の質問は、経験豊富なプログラマーにとっては初歩的なものですが...。

そして、あなたのコードは問題なく動作していることがわかります。デフォルト値で、クロスペアにした場合の写真です。

 
Yedelkin:

そして、あなたのコードは問題なく動作していることがわかります。クロスペアで、デフォルト値の写真です。

2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) 'Pair_delta_RSI.mq5' の配列は範囲外 (96,37)です。
2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) RSI1_Handleのデータが全て計算されていません(-1bars)。Error4806

チャート上にインジケータを貼り付けるとすぐにこれらのエラーが発生します(クロスとこのコードも取りました)。何が問題なのでしょうか?ありがとうございました。


 
FinEngineer 2012.12.21 23:44:46 Pair_delta_RSI (EURGBP,M5) 'Pair_delta_RSI.mq5' の配列は範囲外(96,37)です。

そして、その端末が参照しているコード行を表示してください(私自身は空の行を削除してしまったので、それを確認することはできません)。

FinEngineer : 2012.12.21 23:44:42 Pair_delta_RSI (EURGBP,M5) RSI1_Handleのデータが全て計算されていません(-1bars )。Error4806

ブローカーの歴史が間違っているのかもしれない...。MetaQuotes-Demoに口座を開設し、希望のシンボルの月足チャートを開き(ターミナルのベースに十分な履歴を送り込むため)、任意のシンボルと希望のタイムフレームでインジケータを実行してみてください。

 
Yedelkin:

そして、コンパイラが参照しているコードの行を示せ(自分で空白行を削除してしまったので、わからないのです)。

ブローカーの経歴が曲者なのかも...。MetaQuotes-Demoに口座を開設し、目的のシンボルの月足チャートを開き(ターミナルベースに十分な履歴を送り込むため)、任意のシンボルと目的のタイムフレームでインジケータを実行してみてください。

両シンボルの履歴を読み込んだところ、1つだけエラーが残った 2012.12.22 00:56:44 Pair_delta_RSI (EURGBP,M1) RSI1_Handleのデータが全て計算されていない (-1bars ).Error4806

このエラーはコンパイル時ではなく、インジケータをチャートに貼り付けた時や、タイムフレームを変更した時に発生します。

コンパイル時に警告が出ますが、その内容は以下の通りです。no indicator plot defined for indicator, assigned to 1 by default 0 0

まーた、頭を悩ませている...助けてください...。



 
FinEngineer: コンパイル時に何らかの警告が出ますので、それを紹介します。no indicator plot defined for indicator, assigned to 1 by default 0 0

では、この警告にもかかわらず、プログラムをダウンロードしたのでしょうか?先頭に次の行を追加します。

#property indicator_plots   1
理由: