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

 
igorbel:

input datetime test                                =0;

コンパイルします。1970.01.01という日付がゼロの場合、設定で時間を00、01、02にすることはできません。

このページの入力パラメーターに時間を入力 する例を以下に示します。

 
int    total=OrdersTotal();      
for(int i=0;i<total;i++)
        {
         Print("i=",i);
         if(!OrderSelect(i,SELECT_BY_POS))
           {
            Print("order not selected. Error=",GetLastError());
            continue;
           }
         if(OrderMagicNumber()!=magic_number)
           {
            Print("magic number not correct.");
            continue;
           }
         if(OrderSymbol()!=Symbol())
           {
            Print("symbol not correct.");
            continue;
           }
         if(OrderType()!=OP_SELL)
           {
            Print("order type not correct.");
            continue;
           }
         if(OrderCloseTime()>0)
           {
            Print("order close time not correct.");
            continue;
           }
         if(!OrderClose(ticket,lots,price,slippage,clrClose))
              {
               Print("order Sell with ticket=",ticket,", was not closed. Error=",GetLastError());
              }
            else
              {               
               Print("order Sell with ticket=",ticket,", was closed.");
              }
        }

OrderSelect() で4051エラーが発生するのはなぜですか?1つ目の注文は正しく決済され、2つ目の注文は選択されません。Error=4051です。有効値合計2。

 
igorbel:

OrderSelect()で4051エラーが発生するのはなぜですか?1つ目の注文は正しく決済され、2つ目の注文は選択されません。Error=4051です。有効値合計2。

削除して閉じる場合は、ループを逆にする必要があります。

for(int i=total-1;i>=0;i--)
 
igorbel:

何か不思議な虫とか。

インプットを追加する。

input datetime test                                =0;

コンパイルします。日付1970.01.01ゼロの場合、設定で時間を00、01、02に設定することはできません。

EAで入力変数を変更することはできません
extern変数 - はい

 
Taras Slobodyanik:

EAで入力変数を変更することができない
extern 変数を使用することができます。


EAコードにはありません。入力パラメーターウィンドウで、EAをチャートに貼り付けたとき。

 
Artyom Trishkin:

削除して閉じるときは、このサイクルを逆にする必要があります。


ありがとうございます

 

こんにちは、これらの質問(2)についてご教授ください。

1.履歴によるテスト 結果をエクセルファイルに保存するようなEAはないでしょうか。例えば、あるEAをテストして、そのEAのパラメータ、利益、取引の種類、結果、週の日数などを取得したい場合です。

また、詳細な分析の方法や、EAをどのようにテストし、それが価値のあるものか全くのゴミなのかを確認する方法について、私の経験を共有したいと思います。

2.関数に配列や構造体を渡すにはどうしたらよいですか?例えば、たくさんの変数を持っていて、その変数を構造体に追加し、関数に渡す。

そして、この構造体をこの関数で開き、必要な変数を取得する。これは、変数のすべての値を関数に「引きずり込む」ことを避けるためです(便宜上)。

ありがとうございます。

 
rabanik:

こんにちは、これらの質問(2)についてご教授ください。

1.履歴によるテスト 結果をエクセルファイルに保存するようなEAはないでしょうか。例えば、あるEAをテストして、そのEAのパラメータ、利益、取引の種類、結果、週の日数などを取得したい場合です。

また、詳細な分析の方法や、EAをどのようにテストし、それが価値のあるものか全くのゴミなのかを確認する方法について、私の経験を共有したいと思います。

2.関数に配列や構造体を渡すにはどうしたらよいですか?例えば、たくさんの変数を持っていて、その変数を構造体に追加し、関数に渡す。

そして、この構造体をこの関数で開き、必要な変数を取得する。これは、変数のすべての値を関数に「引きずり込む」ことを避けるためです(便宜上)。

ありがとうございます。

その答えがここに あります。

//+------------------------------------------------------------------+
//| передача параметров по ссылке                                    |
//+------------------------------------------------------------------+
double SecondMethod(int &i,int &j)
  {
   double res;
//---
   i*=2;
   j/=2;
   res=i+j;
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int a=14,b=8;
   Print("a и b перед вызовом:",a," ",b);
   double d=SecondMethod(a,b);
   Print("a и b после вызова:",a," ",b);
  }
//+------------------------------------------------------------------+
//--- результат выполнения скрипта
//  a и b перед вызовом: 14 8
//  a и b после вызова: 28 4
Передача параметров - Функции - Основы языка - Справочник MQL4
Передача параметров - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Передача параметров - Функции - Основы языка - Справочник MQL4
 

親愛なる皆様へ

よろしくお願いします。

switch(int err)演算子を使用しました。

メッセージを受け取る

int ErrorDescription()

{

Alert("beg ErrorDescription")


スイッチ

{

の場合は0。err="エラーなし"; break;

case 1: err="エラーなし、ただし結果は不明"; break;

case 2: err="一般的なエラー"; break;

case 3: err="間違ったパラメータ";

どうしたんだ、セミコロンの位置がわからないのか?はっきりしませんが...。

 
buyanov:

親愛なる皆様へ

よろしくお願いします。

switch(int err)演算子を使用しました。

メッセージを受け取る

int ErrorDescription()

{

Alert("beg ErrorDescription")


スイッチ

{

の場合は0。err="エラーなし"; break;

case 1: err="エラーなし、ただし結果は不明"; break;

case 2: err="一般的なエラー"; break;

case 3: err="間違ったパラメータ";

どうしたんだ、セミコロンの位置がわからないのか?はっきりしませんが...。

Alert() のことは調べましたか?"; "はどこにある??

int ErrorDescription()
  { 
   Alert("beg ErrorDescription");   // где у вас ";" ???
   switch(err)
   {    
      case 0:   err="Нет ошибок";                                                     break;
      case 1:   err="Нет ошибки, но результат неизвестен";                            break;
      case 2:   err="Общая ошибка";                                                   break;
      case 3:   err="Неправильные параметры";        
また、なぜ関数にフラグメントを与えているのですか?