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

 

さあ、準備だ。

enum ENUM_case
  {
   M=1,// Больше A
   L=2,// Меньше A
   ML=3,//Больше А и меньше Б
   LM=4 //Меньше А или больше Б
  };

struct param
  {
   int               cas; //Case
   double            a; // A
   double            b; //B  
  };
param params[];
double data[3]; //Массив для записи текущих параметров

変数の 定義

sinput string atata0; //Параметры пробитие 
sinput string atata1; //Объем
input ENUM_case bc1=1; //Логика
input double ba1=1;//A
input double bb1=1;//B
sinput string atata2; //Сделки
input ENUM_case bc2=1;//Логика
input double ba2=1;//A
input double bb2=1;//B
sinput string atata3; //Заявки
input ENUM_case bc3=1;//Логика
input double ba3=1;//A
input double bb3=1;//B

OnInitでのバカ騒ぎはこんな感じです。

   ArrayResize(params,3);
   params[0].cas=bc1;
   params[0].a=ba1;
   params[0].b=bb1;
   params[1].cas=bc2;
...

入力された変数を すぐに配列に書き込んだり、配列を変数で初期化したりすることができないのが理解できない :(

EA内部のどこかで、データ配列を埋めて、チェック関数を実行しています。

bool Conditions()
{
int num=ArraySize(params);
for (int i=0;i<num;i++)
{
switch(params[i].cas) 
{
case 1 : if (!(data[i]>=params[i].a)){return(false);break;}
case 2 : if (!(data[i]<=params[i].a)){return(false);break;}
case 3 : if (!(data[i]>=params[i].a && data[i]<=params[i].b)){return(false);break;}
case 4 : if (!(data[i]<=params[i].a || data[i]>=params[i].b)){return(false);break;}
}
}
return(true);
}

今のところ順調です。何か良い方法はないでしょうか?

 

こんにちは。

気に入ったソフトをマーケットから買えない(MT4)。

私はすべて正しくできたようです。

最初にMQL5.communityのアカウントに資金を供給しました(WM経由)。

そして、MT4に口座を登録しました。


しかし、「買う」「借りる」を押すと(1年間は、したかった)。

-積立口座 から引き出さない。

そして、WMを充填する形に代えて、WMから再び取ることを提案する。

(それに伴い、Webmoneyからの指定とパスワードの提供を行う)。


ちょっと不思議な感じがしました。

-それでは、なぜ私はMQL5.communityのアカウントを預けているのでしょうか?


もし、あなたが何かを知っているとしたら、それはもしかしたら私の知らないことかもしれませんね?


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


============

ありがとうございます。答えを待たず、自分で考えてみました。_それは大丈夫です

 
Антон:

さあ、準備だ。

変数の 定義

OnInitでのバカ騒ぎはこんな感じです。

入力された変数を すぐに配列に書き込んだり、変数で配列を初期化したりすることができないのは理解できない :(

EA内部のどこかで、データ配列を埋めて、チェック関数を実行しています。

今のところ順調です。何か良い方法はないでしょうか?

一見すると、すべてがうまくいっているように見えます。何か問題があるのでしょうか?

入力変数を直接配列に書き込んだり、配列を変数で初期化することができないのは理解できない :(
初期化コードはコンパイル時に作成され、この時点では変数の値は不明であるため、配列は定数で初期化するしかない。

もうひとつは、純粋にデザインに関する批判です。ENUM_caseがありながら、数値を使用していますね。

 
Alexey Volchanskiy:

一見すると、すべてがうまくいっているように見えます。何が気に入らないのか?

入力変数を直接配列に書き込んだり、配列を変数で初期化することができないのは理解できない :(
初期化コードはコンパイル時に作成され、この時点では変数の値は不明であるため、配列は定数で初期化するしかない。

もっと純粋にデザインにケチをつけてください。ENUM_caseがありながら、数値を使用していますね。

OKが出たら、リファインする。ありがとうございます。
今朝、ちょっとしたトラブルがあり、こんなことならトリッキーなオペレーターがいるかもしれないと思いました。

 
vaso55555:

ごきげんよう。

お気に入りのアプリケーションをマーケット(MT4)から購入できない。

すべて正しく行われたようだ。

初めてMQL5.communityのアカウントに資金を投入しました(WM経由)。

そして、MT4に口座を登録しました。


しかし、「購入」または「レンタル」(1年分希望)を押すと

-積立口座から引き出さない。

そして、WMを充填する形に代えて、WMから再び撤退することを申し出る

(それに従って、Webmoneyのパスワードの入力も促される)......。


ちょっと不思議な感じがしましたね...。

-それから、なぜ私はMQL5.communityのアカウントを預けたのでしょうか?


どなたかご存知の方、私の知らないことがあるかもしれませんので...。


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

あなたは、信号が加入したときに、少なくとも私は、常にそれを持っていた内部アカウントから撤退する必要がありますが、その市場は、信号の支払いの本質は同じであること。市場で支払うための十分な資金を内部口座に?
 
Антон:

OKが出たら、リファインする。ありがとうございました。
今朝、ちょっとしたトラブルがあり、こんなことならトリッキーなオペレーターがいるかもしれないと思いました。

私は常々、開発中のプログラムを最適化するな、無駄な時間を使うなと言っています。まず、明確でわかりやすく、儲かる アルゴリズムを書き、必要であればボトルネックを 最適化する。
 
Vladimir Zubov:
内部口座から取られるはずで、少なくとも私がシグナルを購読していたときはそうでしたが、マーケットプレイスとシグナルは支払い方法が同じです。私は市場で支払うために私の内部口座に十分なお金を持っている?
もう整理しました、ありがとうございます。
 

こんにちは、テスターの動作モードを価格との関係で判断する方法はありますか。

- をオープニング 価格で販売します。
- オルク
- ダニ?


 
elibrarius:

こんにちは、テスターの動作モードを価格との関係で判断する方法はありますか。

- をオープニング 価格で販売します。
- オルク
- ダニ?


モードが表示された適切なドロップダウンウィンドウがあります。
 
Alexey Volchanskiy:
モードと対応するドロップダウンウィンドウがあります。

モードは設定できるが、Expert Advisorがテスト時にどのモード(価格別)で動作しているかを知る必要がある。

バリエーションは1つしか思いつきません。

もし、1本の棒の間に1ティックしかなかったら、価格で開か れることになります。
0秒、20秒、40秒、59秒の4つの刻み目があった場合 - ohlc
それ以外の場合 - すべてのティック。

しかし、誰かの条件と重なって型が決まるようなバリエーションもありそうで怖いです
もしかして、もっと簡単な方法があるのでは?

理由: