//+------------------------------------------------------------------------------------------+//| ArraySetAsSeries.mq4 |//+------------------------------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------------------------------+//------------------------------------ НАЧАЛО START -------------------------------------- 1 -int start() //функция start
{ //начало startdouble Timestart=GetTickCount(); //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения скриптаdouble array1[][6]; //объявляем массив-источник (массив, из к-о будут скопированы данные)double array2[][6]; //объявляем массив-приемник (массив, куда будут скопированы данные), к-й на
//момент объявления заполнен некоторыми даннымиint element_1=ArrayCopyRates(array1); //копируем данные баров текущего графика в массив array1 int element_2=ArrayCopy(array2,array1,0,0,WHOLE_ARRAY); //копируем данные всех баров в пользовательский массивbool element_3=ArrayGetAsSeries(array2); //проверка: является ли массив array1 массивом-таймсериейbool try_1=ArraySetAsSeries(array2,false); //устанавливаем НАПРАВЛЕНИЕ индексирования массива bool element_4=ArrayGetAsSeries(array2); //проверка: является ли массив array2 массивом-таймсериейdouble element=array2[0][1]; //получаем значение цены открытия нулевого бара//----------------------------------------------------------------------------------------- 2 -Comment("\nФункция ArrayCopyRates(array1) вернула: ",element_1,
"\nФункция ArrayCopy(array2,array1,0,WHOLE_ARRAY) вернула: ",element_2,
"\nФункция ArrayGetAsSeries(array2) вернула: ",element_3,
"\nФункция ArraySetAsSeries(array2;false) вернула: ",try_1,
"\nФункция ArrayGetAsSeries(array2) вернула: ",element_4,
"\nЦена открытия нулевого бара (т.е. бара с ИНДЕКСОМ 0) равна: ",element,
"\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",
MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000,
" миллисекунд");//печать сообщения на экран//----------------------------------------------------------------------------------------- 3 -return(0); //выход из start
} //конец start//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -
その理由に心当たりはありますか?
適切な教科書を作るべきかもしれませんね。
十分な指導ができるのでは?
こういうのをどこかに書いておくとか?
そうすれば、疑問はなくなるかも?
そして、もう100500のくだらない質問に答える必要はありません。
もしそのような質問があったら、それは生徒のせいではなく、あなたのせいです!」。どこにも記述してないじゃん!!!!
ヘルプには、intからdoubleに変換する方法は書かれていない。
しかし、double型をint型に代入すると、端数部分が消去されると書いてある。
普通の人なら、doubleにintを代入すると、ちょうど与えられたゼロの数の点が追加されると論理的に結論づけるのですが...。
だから、こうなんです.
皆さん、こんにちは。プログラミングはかなり初心者です。とても素朴な疑問があります。
私は価格が次のろうそくではなく、同じ瞬間に、ろうそくの終値を待たずに、MAを横断するときに取引を開くためにEAを必要とする、出力は重要ではありません。
ありがとうございました。
その理由に心当たりはありますか?
適切な教科書を作るべきかもしれませんね。
十分な指導ができるのでは?
こういうのをどこかに書いておくとか?
そうすれば、疑問はなくなるかも?
そして、もう100500のくだらない質問に答える必要はありません。
もしそのような質問があったら、それは生徒のせいではなく、あなたのせいです!」。どこにも記述してないじゃん!!!!
ヘルプには、intからdoubleに変換する方法は書かれていない。
しかし、double型をint型に代入すると、端数部分が消去されると書いてある。
普通の人なら、doubleにintを代入すると、ちょうど与えられたゼロの数の点が追加されると論理的に結論づけるのですが...。
だから、こうなんです.
この文脈では、あなたのパトスは見当違いのようです。
皆さん、こんにちは。プログラミングはかなり初心者です。とても素朴な疑問があります。
私は価格が次のろうそくではなく、同じ瞬間に、ろうそくの終値を待たずに、MAを横断するときに取引を開くためにEAを必要とする、出力は重要ではありません。
ありがとうございました。
早速ありがとうございます!仕事終わりで頭が煮えくり返っています))私は貧しいExpert Advisorを書く方法を学びましたが、今私はアイデアを持っていると私は価格がMAと交差した瞬間に位置を開くためのコードの断片が必要ですが、私は次のキャンドルにのみそれを得た。私は彼らが私にコードの一部を示すために、私はそれがよく知られている人のための1行で終わるかもしれないと信じています。
...得意な人は1行で済むケースだと思います。
2つのMAの交点のシグナルはどのように取得するのですか?
早速ありがとうございます!仕事終わりで頭が煮えくり返っています))私は貧しいExpert Advisorを書く方法を学びましたが、今私はアイデアを持っていると私は価格がMAと交差した瞬間に位置を開くためのコードの断片が必要ですが、私は次のキャンドルにのみそれを得た。コードの一部を示して、その方法を教えて欲しい。 私は、よく分かっている人は1行で済むはずだと思う。
バー0の価格を使用 - Close[0], ma[0], Ask, Bid - 0からのバーの番号付け。
フォーラムを読む方が良い:このアイデアは何度もテストされている - あなたは、偽の信号の多くを得るだろう、そこに魚はありません。しかし、実践することは可能です。
まさに
スクリプトを少し修正しました。
結果は次のようになります。
この場合、ArrayCopyRates(array1)関数を使って、現在のチャートのバーのデータを2次元の配列array1にコピーしたのですが、自然に疑問が湧いてきました。そして次の行で関数ArrayCopy(array2,array1,0,0,WHOLE_ARRAY)で、array1のデータをarray2にコピーしているのですが、array1のデータをarray1にコピーすることはできません。そして、ArrayGetAsSeries関数を使って、array2が配列-時系列であるかどうかをチェックしました。そして、(スクリーンショットから分かるように)配列は時系列配列であることが判明しました。しかし、私は以前にArraySetAsSeries関数でそれを「処理」していませんでした。
質問:最初のケース(前の質問)では、ArraySetAsSeries関数を使用する必要があったのに(私の配列を時系列配列として整理するため)、今回のケースではそのような処理を必要としないのはなぜですか?
P.S. しつこくてすみません。ただ、「歴史の隙間」を作らないように、完全に理解したいだけなんです。これまでのご返信ありがとうございました。
ウラジミール、あなたはこのヒステリーのすべてを、購入した端末のテクニカルサポートに表明する権利を持つことになるのです。そして、無料のものを使っている間に、自分で解決したマニアと、ホームページで資料を探す時間さえ惜しんで、それでも100回目に何か答えてくれるあなたのような怠惰な人に感謝しましょう。誰もあなたに借りがあるわけではありません。自分たちでやろうとしているのです。かまってほしいなら、インストラクターを雇って頭をいじってやれ。ダミーとビブを渡される。
ウラジスラフ 失礼ながら、答えたくないのなら答えなければいいし、答えたいのなら実質的な答えを出せばいいのです。
1日3回、4~5時間ドキュメントを読み ましょう」という答えが返って くるので、コミュニケーションの講座や心理学のレッスンを受ける必要があります。そして、その時だけタンバリンでジャンプする。「よく言うよ...
"たくさんくれたこと"。とにかくお世話になりました.
ウラジスラフさんには失礼ですが、答えたくないのなら答えなければいいし、答えたいのなら要点だけを言えばいいのです。
より良いコミュニケーションのためのコースや心理学のレッスンを受ける必要があります。これらの回答は、「ドキュメントを1日3回、4~5時間読んで ください」というものです。そして、その時だけタンバリンでジャンプする。「よく言うよ...
"たくさんくれたこと"。とにかくお世話になりました.