エラー、バグ、質問 - ページ 356

 
Im_hungry:

これと似たようなことを書きましたが、配列のラベルを変えてください - (役に立つとは思えませんが、少なくとも

この方がいい)、変えてみてください。

を、この線上に置く。

また、変更する。

をそれに加えます。

こんなもんじゃない。数年前のビルドで、標準ライブラリの CPositionInfo, COrderInfo, CDealInfo クラスの古い Type() メソッドが PositionType(), OrderType(), DealType() に置き換わりました。そのため、これらの関数は、以前に作成したMQL5プログラムにおいて修正しなければ、正しく動作しない。

私なら、あなたのコードをこのように書き換えます。

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

input int TriX_PARAM=14;
input int TriX_PARAM_Close=50;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;
CTrade mytrade;
CPositionInfo myposition;
CSymbolInfo mysymbol;
COrderInfo myorder;
int OnInit()
  {

   TriXHandle=iTriX(NULL,PERIOD_CURRENT,TriX_PARAM,PRICE_WEIGHTED);
   TriXHandle_Close=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM_Close,PRICE_WEIGHTED);
   ArraySetAsSeries(TriX_Close,true);
   ArraySetAsSeries(TriX,true);
   return(0);
  }

void OnTick()
  {
   if(myposition.Select(_Symbol))
    { 
     CopyBuffer(TriXHandle_Close,0,0,4,TriX_Close);
     if(myposition.PositionType()==POSITION_TYPE_BUY) 
//Закрываем позицию
     {
      if(TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
     } 
     else  
      if(TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) 
        mytrade.PositionClose(_Symbol);
    }
   else
//Открываем позицию
     {
      CopyBuffer(TriXHandle,0,0,4,TriX);
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1);
     }
  }
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Rosh:
すべてのチャートウィンドウに0から番号が振られています。0 - メインチャートウィンドウ、1 - 最初のインジケータのウィンドウ。といった具合に。

その点については、何の疑問もありませんしかし、最小値や最大値はどこにあるのか、なぜチャートで操作した後でないと表示されないのか。
 
KffAlex:
それは間違いないです!しかし、最小値や最大値はどこにあるのか、なぜグラフを操作して初めて表示されるのか。
サービスデスクに問い合わせた方がいい。これはバグの可能性が高いです。
 

このエラーの意味するところを教えてください。

internal error #108             0       0

スクリプトをコンパイルするとき?

削除済み  
alsu:

このエラーの意味するところを教えてください。

スクリプトをコンパイルするとき?

私が理解している限りでは

108 #define の名前が適切でない

 
Interesting:

私が理解する限りでは

108 #define の名前が適切でない

ポイントは、脚本にディフィニションやインリュードがないことです。

 
 
alsu:

というのは、台本に定義やインリュードがないのです。

スクリプトには
#インクルード
и
#定義
 
alsu:

そして、ブロック単位でスクリプトから正常にコンパイルされた別のスクリプトに転送します。

それが何であったかを書き戻す。

 
sergeev:

そして、そのスクリプトから、正常にコンパイルされた別のスクリプトにブロック単位で転送する。

その内容を教えてください。

シンプルにした。

コメントアウトしたのは、/* */です。 何事もOnStart()関数 本体 - エラーのままでした。また、マシンを再起動した後。

繰り返しますが、inludeもdefineも、外部変数も含め、グローバルレベルでは何もありません。ターミナルを再インストールするのはまだ嫌です))

開発者たちよ、HA!!!内部エラー#108???!はどういう意味ですか?