//+------------------------------------------------------------------------------------------+//| ArrayGetAsSeries_плюс.mq4 |//+------------------------------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------------------------------+//------------------------------------ НАЧАЛО START -------------------------------------- 1 -int start() //функция start
{ //начало startdouble Timestart=GetTickCount(); //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта double array1[]; //объявляем массив-приемник (массив, куда будут скопированы данные)int element=ArrayCopy(array1,Open,0,0,WHOLE_ARRAY);//копируем данные по ценам открытия в пользовательский массив (начиная с нулевого бара)int size=ArraySize(array1); //устанавливаем количество элементов массива array1for(int i=0;i<=4;i++) //цикл по просмотру скопированных значений (первых пяти)
{ //начало forAlert("Значение цены открытия бара № ",i," равно ",array1[i],
"\nВремя цены открытия бара № ",i,": ",TimeToStr(iTime(NULL,0,i),TIME_DATE|TIME_MINUTES));//cообщение на экран
} //конец for//----------------------------------------------------------------------------------------- 2 -Comment("\nФункция ArrayCopy(array1[],Open,0,0,WHOLE_ARRAY) вернула: ",element,
"\nФункция ArraySize(array1) вернула: ",size,
"\nФункция ArrayGetAsSeries(array1) вернула: ",ArrayGetAsSeries(array1),
"\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000),
" секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать //сообщения на экран//----------------------------------------------------------------------------------------- 3 -return(0); //выход из start
} //конец start//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -
int start() // Спец. функция start()
{ // Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert (GetLastError());
return; // Выход из start()
}
4桁の楽器用にコーディングしてみました。
ドットの後が5桁の会社のアカウントを持っています。
また、スクリプト実行時にエラー4109(trading not allowed)が表示されるのはなぜですか?
int start() // Спец. функция start()
{ // Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-150*Point,Bid+150*Point);
Alert (GetLastError());
return; // Выход из start()
}
多分私は間違って何かを説明した、あなたは16:00モスクワ時間で始まるm1 m5 m15 m30 h1 h4の最初のろうそくをマークする必要があるだけで、指標は(よく例えばm15に4キャンドル)マークを付けます。
助けることと、やることは少し違う。そう思いませんか?
配列のサイズを設定する必要はないのですか?
はい、本当に忘れてました、泥沼にはまりそうです。これでアレイはいっぱいになりましたが、行はまだ表示されません。アレイはバッファにリンクされる
はい確かに、忘れてました、もう疲れました。これでアレイはいっぱいになったが、まだ線は表示されない。アレイはバッファにリンクされる
コードを全部教えてくれればよかったのに。明確なものを当てにするのではなく
助けるとやるは少し違う。そう思いませんか?
私は完全にあなたに同意します、私は助けを求めました、私は2週間の間あちこちをつつきましたが結果は出ませんでした、だからあなたのオプションは私にも合いません、まあどうもありがとう、私は自分自身で解決しますよ。
こんにちは...ArrayGetAsSeries 関数について質問です。ArrayGetAsSeries 関数の動作を理解するために、 、以下のスクリプトを書きました。
このスクリプトは、バーの始値の配列-時系列をカスタム配列にコピーしています。配列要素が最後から最初のインデックスを持つため、このカスタム配列は明らかに時系列配列として構成されています( これは、Alert 関数 が4番目のバーの始値と時間を出力したスクリーンショットで実証 されています)。このバーはチャート上に縦線で表示されます。このバーのオープン価格も確認でき、プロパティウィンドウではバーのオープン時間がアラート 機能で設定したものと同じであることがわかります)。しかし、ArrayGetAsSeries 関数は0を返します。これは、ユーザー配列が時系列配列として整理されていないことを意味します(スクリーンショットの左上隅)。
質問:ユーザー配列が時系列配列として構成されているにもかかわらず、ArrayGetAsSeries 関数はなぜ0を返したのでしょうか?
P.S. フォーラムを乱雑にしないために、事前に回答をお願いします。
Q: ユーザー配列が時系列配列として構成されているのに、ArrayGetAsSeries 関数が0を返すのはなぜですか?
データをある順番でコピーしたからといって、配列が時系列に整理されているとは限りません
しかし、ポイントは、すでにコピーされたバーからforループで再現される始値の値は、最後から最初のものにインデックスが付けられていることです。しかし、私が理解する限り、これは(つまり、最後から最初のインデックス)配列が時系列で構成されていることを意味するのでしょうか?
P.S.FileIsEndingと FileIsLineEnding関数について、前回の質問への回答ありがとうございました。
しかし、ポイントは、すでにコピーされたバーからforループで再現される始値の値は、最後から最初のものにインデックスが付けられていることです。しかし、私が理解する限り、これは(つまり、最後から最初のインデックス)配列が時系列として整理されることを意味するのでしょうか?
P.S. FileIsEndingとFileIsLineEnding関数について、前回の質問への回答ありがとうございました。
いや、あくまでもデータが歴史の一コマと一致したということだ。
手動で入力するなどの方法もあったはずです。またはテキストファイルから書き込む。または計算で受け取った。
結局、「1.25 1.16 1.73 1.35」という条件付きのデータを入力しても、何年も前の通貨の履歴にたどり着くかもしれない。しかし、だからといって配列の時系列を設定したわけではありません
質問が重複して申し訳ないのですが、これが解決しないと以下の例ができないのです。
どうかご教授ください。
MQL4のチュートリアルから)注文を開くための簡単なスクリプトを書きました。
4桁の楽器用にコーディングしてみました。
ドットの後が5桁の会社のアカウントを持っています。
また、スクリプト実行時にエラー4109(trading not allowed)が表示されるのはなぜですか?
質問が重複して申し訳ないのですが、これが解決しないと以下の例ができないのです。
どうかご教授ください。
MQL4のチュートリアルから)注文を開くための簡単なスクリプトを書きました。
4桁の楽器用にコーディングしてみました。
ドットの後が5桁の会社のアカウントを持っています。
スクリプトの実行時にエラー4109(取引不可)が表示されるのですが、5桁のコードを修正することはできますか?
ただし、それが全く機能しないわけではありません。証券会社でストップ&テイクのサイズが有効かどうか確認する必要がある