#property copyright"Copyright 2018, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict#define templ(T) template<typename T>// задача данного макроса определять int bool double и т.д//Далее пишем макрос который будет принимать массив и возвращать//результат с помощью вызова перегружаемой функции которая будет вызываться из класса, но в моём примере вписана простая функция,// я 3 дня посидел и выяснил что макрос может принимать массивы любой размеренности в принципе об этом написано в справке что макрос может принимать эл. любого типа#define Vosmas(a,b,c,d,e) /*return*/(Fun(a,b,c,d,e))//a- массив, //b- номер строки если нужен//c,d- номера измерений если нужны и массив многомерныйint Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)intOnInit()
{int Perem=0;
//макрос должен вызвать функцию из класса и сделать следующее/ в моём примере будет простая функция
Perem=Vosmas(Mas,0,0,0,3);
Print("Vosmas: ",Perem);//результат 3return(INIT_SUCCEEDED);}
templ(T)class CData{
public:CData(){};~CData(){};
//перегружаемая функция Total() с наращиваемым количеством аргументов, не знаю будет ли оно наращивать аргументы вроде записывается но когда дойдёт до расчётов увидим//хотелось бы с этим разобраться //а также делать такую перегрузку
T Total(T &mas[] ,int y1=0 ...){return(mas[y1]);} //y2 весит в холостую
T Total(T &mas[][] ,int y1=0 ...){return(mas[y1][y2]);}
T Total(T &mas[][][],int y1=0 ...){return(mas[y1][y2][y3]);}};
templ(T) T Fun(T &a[],int b,int c,int d,int e){a[b]=e; return (a[b]);}// оставшиеся аргументы будут висеть в холостую
#property copyright"Copyright 2018, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict#define templ(T) template<typename T>// задача данного макроса определять int bool double и т.д#define Vosmas(a,b,c,d,e) 5int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)intOnInit()
{int Perem=0;
Perem=Vosmas(Mas,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas2,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas3,0,0,0,0);
Print("Vosmas: ",Perem);//во всех случаях результат 5return(INIT_SUCCEEDED);}
こんにちは、MT5の相場履歴の読み込みと同期を行う通常のスクリプトがあれば教えて頂きたいのですが。ex5とすべてがうまくいっていた、スキャナは、シグナルを与え、すべてがうまくいったが、カットオフとして昨日の昼食後、スキャナはちょうど歴史を見て停止し、したがって、戦略に従ってエントリポイントを探し、信号を与える、私は問題はスキャナであると思ったが。私はそれのいくつかのバージョンを持っており、それらのすべてのための信号を与えるのをやめた、私と私の友人の両方、私は無駄に、端末を空にし、すべての情報とそれを削除し、それを再インストールし、私はスクリプトで履歴をロードし始めたとき、私はエキスパートタブを開き、歴史をロードするとエラーだけがあったことを見て、私はブローカーのサポートに書き、彼らはMT%で最近それが更新されているかもしれないと答え、アルゴリズムは、スクリプトで混乱している、彼はこのようなロード履歴を教えてください。私は文字の大きな番号をお詫び申し上げます、私はちょうど詳細に状況を説明しようとした、ブローカーのサポートは助けることを拒否し、彼らはそれが私たちではない、と言うメタクォーツ、あなたは彼らに書くことができない、彼らはフィードバックを持っていないので、私はここで何をすべきかと引用符の歴史のための他のスクリプトがあるかどうかを尋ねることにしました、私は引用符、使用しない、事前に感謝ダウンロードする月刊TFを使ってみたことを認めざるを得ません。
私は何も言うつもりはありませんが、ある注文を遂行する際に履歴データに問題があったのはこの会社だけで、オンとオフがありました。
他のブローカーの見積もりでテストするようにクライアントに言うまで、その理由を探っていたのです。そして、そこですべてがOKになったのです。
月足タイムフレームで気配値を読み込もうとしたら、使い物にならなかった。
みんなこの問題を解決してくれhttps://www.mql5.com/ru/forum/160683/page934#comment_12795598
完全な例を持っていない、再現可能なコード、すなわち完全なクラステンプレートと、このテンプレートを使ってオブジェクトを作成するコード例を投稿してください、今のところ「休日のテレパス」だけです...私はコードが単にコンパイルされていない疑いがあります、あなたのテンプレートには多くの論点があり、私はその中の論理を見ることができないかもしれません。
私は何も言うつもりはありませんが、ある注文を遂行する際に履歴データに問題があったのはこの会社だけで、オンとオフがありました。
他のブローカーの見積もりでテストするようにクライアントに言うまで、その理由を探っていたのです。そして、そこですべてがOKになったのです。
理由は、このリソースでブローカーについて議論することは禁じられているからです、それは置いておいて。
それが、この半年以上、一度も問題が起きていないんです。私は何らかの理由でそれを使用しようとした、私たちのはmakdiのバーグラフを使用して、それが問題のようだ、少なくとも彼らはQuickBooksのために注文したいときに答えはTORを検討した後、負のであった、すべての組み込みinduksプラットフォーム上で残り、ちょうど冬眠で時々IMbとアメリカは動作するように与えなければなりません
あなたは完全な例を持っていない、再現可能なコード、すなわち、完全なクラステンプレートと、このテンプレートを使用してオブジェクトを作成するコード例を投稿してください、今のところ唯一の "休日のテレパス" ... 私はコードが単にコンパイルされていない疑いがあります、あなたのテンプレートに多くの疑問点があります、多分私はその中のロジックを参照してくださいしない。
このように動作するはずです。
一般的に、私はこの効果を達成したいのですが、授業の分野での経験はありません。コードがコンパイルされて動作する
このように動作するはずです。
残念ながら、私はこのコードの論理を理解していません。なぜ、マクロの代入によって言語キーワードを宣言するのか、想像もつきません。
また、論理的には、この方法で多次元配列に アクセスできるかは疑問です。あなたの例では、テンプレートをコンパイルしなかったので、コンパイルタイムエラーが発生しなかっただけだと思います。
私はあまり役に立ちませんが、多分他の人があなたの例を理解することができます
残念ながら、私はこのコードの論理を理解していません。なぜ、マクロの代入によって言語キーワードを宣言するのか、想像もつきません。
また、論理的には、この方法で多次元配列に アクセスできるかは疑問です。あなたの例では、テンプレートをコンパイルしなかったので、コンパイルタイムエラーが発生しなかっただけだと思います。
私はあまり役に立ちませんが、もしかしたら他の人があなたの例を理解できるかもしれません。
コードはコンパイルされますが、まだ完成ではなく、ポイントはこの結果を得ることです。
return(mas[y1]);
クラスから関数を呼び出して、この値を取得する必要があります。
コードはコンパイルされますが、完成ではありません。
再び:コンパイルエラーが 出なかったからといって、テンプレートクラスが含まれていたとは限りません。- テンプレート宣言がありますが、変数はどこですか?- オブジェクト?
もし、問題を解決することが「極めて重要」であれば、完全に再現可能なコードを作ってください - 完全に、それはあなたの裁量で....コメントなしで、再び、私はマクロ置換を使用する論理を理解していない
私はマクロをほとんど使いませんが、少なくともマクロを使う場合は、それが最終的に何をするのか理解しています。
繰り返しますが、コンパイルエラーが 出なかったからといって、テンプレートクラスが含まれていたとは限りません - CDataクラスオブジェクトはどこにあるのでしょうか?- テンプレート宣言がありますが、そのような変数はどこにあるのでしょうか?- オブジェクト?
もし、問題を解決することが「極めて重要」であれば、完全に再現可能なコードを作ってください - 完全に、それはあなたの裁量で....コメントなしで、再び、私はマクロ置換を使用する論理を理解していない
私はマクロをほとんど使いませんが、少なくともマクロを使う場合は、それが最終的に何をするものなのかを理解しています。
マクロがクラスから関数を呼び出して、その値を関数に渡すというタスクですが、マクロは任意の次元の配列を取ることができるので、そのようなスキームを作ろうとしています。もちろん、多くの宝石が、私はクラスから関数を呼び出す必要があり、私はクラスの単純な関数を呼び出す方法がわからない(私の場合、メソッドの合計は何の説明もありません)ヘルプで書かれていない、転送の複雑な例があります。
マクロが任意の次元の配列を受け取る例ですが、開発者がこれらの機能を削減し、複雑な要素を扱うのが普通であることは悪いことです。
テンプレートなしでもできますが、テンプレートがあったほうがいいです。