[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 272 1...265266267268269270271272273274275276277278279...432 新しいコメント TarasBY 2013.04.07 17:54 #2711 hoz: また、この変数は秘密でないとすれば、どこで明示的に設定されているのでしょうか。:)ライブラリb-PSI@Base.mqh を見ると、宣言されているだけなんですね。しかし、それ以上のことは基本的にありません。実際、Symbol() を使用すると、デフォルトで現在の測定器の値が返されます。では、なぜここで変数が必要なのでしょうか?この質問については、多通貨の項ですでに回答しています - current symbol =Symbol()- これはあくまで特別なケースです。追伸:あなたのアプローチは興味深いです。他人のコードを取り出して、自分のロジックに「合わせよう」とするのですから。 Viktar Dzemikhau 2013.04.07 18:42 #2712 TarasBY:私はすでにこの質問に答えています、多通貨について - 現在のシンボル = Symbol() - これは唯一の特別なケースです。追伸:あなたは興味深いアプローチをしていますね。他人のコードを取り上げて、自分の論理に「合わせ」ようとするのです。 調整するつもりはない。ただ、どのように実装されているかは勉強したいですね。しかし、私は何もコピーしません。プロがどう考えているのか興味があります。それが本当の理由です。そこで、ご紹介します。void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0) 関数を調べています。if (fs_Symbol != bs_Symbol || fi_Ticket < 0)この関数の内部では、この変数は宣言されていません。他の2つのベースファイル(inclusionとfunction)でも宣言されていません。どこを探せばいいのかわからない。それを聞いているのです。元々全く登場しないところ、つまり宣言されたところを理解したいのです。もしよろしければ、教えていただきたいのですが...。また、もう一つ別の変数で不思議なことがあります。bool fCheck_LevelsBLOC 関数内の以下の行。 if (fi_Type == 0) li_cmd = 0; else if (fi_Type == 1) li_cmd = 1; else if (fi_Type % 2 == 0) li_cmd = 1; else li_cmd = 0; ld_Price = bda_Price[li_cmd];bda_Price[li_cmd] はb-PSI@Base.mqh ライブラリで初めて言及されています。bda_Price[2];配列の要素が 指定されていない。だから、それぞれゼロに等しい。つまり、li_cmd 配列のパラメータである式が、0?ld_Price = bda_Price[li_cmd]; Artyom Trishkin 2013.04.08 00:16 #2713 bikrus13: 皆さんこんにちは。取引を開始するときにロットを増やすスクリプトを作成できるすべての人に応答してください。仕事のやりがいのために、ここで入札を開くのか?通常、満足するのはタスクではありません...。わからないことがあれば、私たちに聞いてください。または仕事に 行く - そこにあなたと仕事の両方を満足させる...有償 Dikii 2013.04.08 01:40 #2714 EAから時間ごとの履歴の価格(AskとBid)を調べることは可能ですか?例えば、10分前、10秒前など。ある一定期間の始値、終値、高値、安値を時系列で取得する機能は知られていますが、特定の時点のAskとBidを知るにはどうしたらよいのでしょう。 Boris 2013.04.08 05:52 #2715 Dikii:EAから時間ごとの履歴の価格(AskとBid)を調べることは可能ですか?例えば、10分前、10秒前など。あ る一定期間の始値、終値、高値、安値を時系列で取得する機能は知られていますが、特定の時点のAskとBidを知る にはどうしたらよいのでしょう。 Askはない、Bidだけだ!ちなみに、私も含めて、みんなそう思っていますよ。 Dikii 2013.04.08 06:02 #2716 borilunad: アスクまさか、ビッドだけ!?ちなみに、私も含めて、みんなそう思っていますよ。 10秒前のBidを調べる方法を、できればコードで説明してください。 gince 2013.04.08 07:08 #2717 先ほど、アレイについて質問させていただきました。まだ、うまくいかないようです。テスターで動かすとゼロで割れる ところがある。ある配列の中にゼロがあることを意味します。どこがエラーなのかがわからない。付録のコード。WORDeでは、コメントはロシア語で行っています。申し訳ございませんでした。私のMetaeditorはロシア語をサポートしていません。エラーを見つけるのを手伝ってください。そして、それらを説明することに抵抗がなければ。Неполучилось сразу и два файла поместить. Вордовский документ неразрешается всавлять. Как иначе проконтировать на русском незнаю , только полностью код скопировать с ворда и поместить сюда //быстры MA extern int MA_Period1 = 8; extern int plius1 = 100; extern int MA_Shift1 = 0; extern int MA_Method1 = 0; //медленый MA extern int MA_Period2 = 13; extern int plius2 = 100; extern int MA_Shift2 = 0; extern int MA_Method2 = 3; //начало флета //поиск флета по сигналу или время extern bool start = true; // true ->по сигналу, false->по времени // по сигналу начинаем с данного времени extern int startHourFlatMA = 16; extern int startMinFlatMA = 00; //сигнал есть, ждем пока закроется BarEnd бар extern int BarEnd = 240; datetime LastTime; //datetime startTime; // по времени начьнем искать флет с extern int startHourFlat = 0; extern int startMinFlat = 0; //конец флета в промежутке времени или по истечению времени //начало промежутка extern int startHourEnd = 4; extern int startMinEnd = 45; //конец промежутка, и истечение времени по времени extern int endHourEnd = 7; extern int endMinEnd = 30; //включение фильтра Volumes extern bool volFiltr = true; //true -> включено, false -> выключено //skirtumas tarp penktadienio uzdarymo ir pirmadienio atidarymo extern int gep = 300; bool susikirtimas = false; //пересечение индикаторных линий bool flat; //массивы double chPriceH[], chPriceL[], chPriceO[], chPriceC[], chTime[]; double avgPriceH[], avgPriceL[], avgPriceO[], avgPriceC[]; int iH, iL ,iO, iC, iT; double C[], T[], y[]; int i = -1; // индекс массива int j = -1; // индекс массива int n = -1; // индекс массива double max; //максимаьная разница между элементами масивов int init () { ArrayResize(chPriceH, 0); ArrayResize(chPriceL, 0); ArrayResize(chPriceO, 0); ArrayResize(chPriceC, 0); ArrayResize(chTime, 0); ArrayResize(avgPriceH, 0); ArrayResize(avgPriceL, 0); ArrayResize(avgPriceO, 0); ArrayResize(avgPriceC, 0); ArrayResize (C, 0); ArrayResize (T, 0); ArrayResize (y, 0); } int start() { double volMA11, volMA12, volMA21, volMA22; double x[], y[]; Print("***старт***"); if(!TF_F_NewBar())return(0); Print("---1-собираем данные индикаторов---"); volMA11 = iCustom(NULL, 15, "volumeMA", 2, 1); volMA12 = iCustom(NULL, 15, "volumeMA", 2, 2); volMA21 = iCustom(NULL, 15, "volumeMA", 3, 1); volMA22 = iCustom(NULL, 15, "volumeMA", 3, 2); Print("volMA11 = "+volMA11); Print("volMA12 = "+volMA12); Print("volMA21 = "+volMA21); Print("volMA22 = "+volMA22); Print("----1 данные собраны---END"); Print("---2 какой день недели--"); if(DayOfWeek()==1 || DayOfWeek()==2 || DayOfWeek()==3 || DayOfWeek()==4) { Print("DayOfWeek = "+DayOfWeek()); Print("----2---END"); if(Hour() >= startHourFlatMA && Minute() >= startMinFlatMA) Print("---3 проверка времени, разрешается ли искать флет---"); { Print("время начала флета >= "+Hour()+":"+Minute()); Print("----3--end"); Print("---4 есть ли пересечение линий индикатора----"); if(volMA21 - volMA11 > 0 && volMA12 - volMA22 > 0) { //если было пересечение susikirtimas = true; Print("пересечение = "+susikirtimas); Print("---4---END"); Print("---5 жшдем окончания M240 свечи--"); LastTime = iTime(NULL, BarEnd, 1); Print("LastTime = "+LastTime); //startTime = Time[1]; } if(susikirtimas == true && iTime(NULL, BarEnd, 1)!= LastTime) { LastTime = iTime(NULL, BarEnd, 1); flat = true; Print("flat = "+flat); } if(flat == true) { Print(-начало флета есть"); Print("-- 6 собираем данные в массивы--"); //увеличиваем число элементов массива на один i++; Print("увеличиваем длину массива в зависимости от i "); ArrayResize(avgPriceH,i); ArrayResize(avgPriceL,i); ArrayResize(avgPriceO,i); ArrayResize(avgPriceC,i); Print("с каждой новой свечой должны получить новые элементы массивов"); avgPriceH[i] = High[1]; Print("AVG элемент avgPriceH["+i+"] = "+avgPriceH[i]); avgPriceL[i] = Low[1]; Print("AVG элемент avgPriceL["+i+"] = "+avgPriceL[i]); avgPriceO[i] = Open[1]; Print("AVG элемент avgPriceO["+i+"] = "+avgPriceO[i]); avgPriceC[i] = Close[1]; Print("AVG mэлементasyvo elementas avgPriceC["+i+"] = "+avgPriceC[i]); j++; Print("индех канальных массивов j = "+j); ArrayResize(chPriceC,j); Print("CH masyvo ilgis chPriceC = "+j); ArrayResize(chTime,j); Print("CH masyvo ilgis chTime = "+j); //включен ли фильтр if(volFiltr) { //да Print("да включен"); Print("volMA11 = "+volMA11, " Volume[1] = "+Volume[1]); if(volMA11 - Volume[1] >= 0)//фильтр { Print("записываем Close[1] ir Time[1] в массивы"); chPriceC[j] = Close[1]; Print("masyvo elementas chPriceC["+j+"] = "+j); chTime[j] = Time[1]; Print("masyvo elementas chTimev["+j+"] = "+j); } else { //renkam chPriceC[j] = 0; Print("masyvo elementas chPriceC["+j+"] = "+j); chTime[j] = 0; Print("masyvo elementas chTimev["+j+"] = "+j); } } Print("получилис отфильтрваные массивы с нулями "); else // jei filtras isjungtas, tada duomenys kanalo skaiciavimui { //renkam Print("если фильтр выключен"); Print("pradedam rinkti Close[1] ir Time[1] duomenis i masyvus po filtracijos"); //chPriceH[j] = High[1]; Print("masyvo elementas chPriceH["+j+"] = "+j); //chPriceL[j] = Low[1]; Print("masyvo elementas chPriceL["+j+"] = "+j); chPriceC[j] = Close[1]; Print("masyvo elementas chPriceC["+j+"] = "+j); //chPriceO[j] = Open[1]; Print("masyvo elementas chPriceO["+j+"] = "+j); chTime[j] = Time[1]; Print("masyvo elementas chTimev["+j+"] = "+j); } //suzinom kokio ilgio masyvai Print("после того как массивы собраны узнаем их длину"); Print("ArrayRange(chPriceC, 0) = "+iC); Print("фильтруем их от нулей, после фильтрции длина массивов меньше чем была до фильтрции"); for(int k = 0; k <= iC; k++) { if(chPriceC[k] > 0) { n++; ArrayResize(C,n); ArrayResize(T,n); C[n] = chPriceC[k]; T[n] = chTime[k]; Print("naujo masyvo elementas C["+n+"] = "+C[n]); Print("naujo masyvo elementas irasytas T["+n+"] = ",T[n]); Print("naujo atfiltruoto masyvo ilgis n = ",n); } } } } } Print("так масивы набирается свеча за свечой пока несработает 7 – ая часть кода"); Print("----------- 6 массивы набирается------------------------end"); Print("----------- 7 массивы набраны------------------------end"); //if(DayOfWeek()==0 || DayOfWeek()==6) return(0); if(((Hour() > startHourEnd && Minute() > startMinEnd) && //jei jau laikas po 6.30 Print("если начялось время начала поиска конца флета"); (volMA11 - volMA21 > 0 && volMA22 - volMA12 > 0)) || //пересечение индикаторных линий (Hour() > endHourEnd && Minute() > endMinEnd)) { // или кончилось время флета susikirtimas = false; //сбрасываем флаг начала пересичения инд. линий на вход во флет flat = false; //сбрасываем флаг начала флета i = -1; //Возвращаем начальные индексы массивов j = -1; //ищем линию регрении ArrayChLR(C, y, max);//ArrayLR(x, y) //ищем точки для фибо уровней double y161Plus_1 = y[1] + max/50 * 161; double y261Plus_1 = y[1] + max/50 * 261; double y361Plus_1 = y[1] + max/50 * 361; double y423Plus_1 = y[1] + max/50 * 423; double y161Minus_1 = y[1] - max/50 * 161; double y261Minus_1 = y[1] - max/50 * 261; double y361Minus_1 = y[1] - max/50 * 361; double y423Minus_1 = y[1] - max/50 * 423; double y161Plus_2 = y[n-1] + max/50 * 161; double y261Plus_2 = y[n-1] + max/50 * 261; double y361Plus_2 = y[n-1] + max/50 * 361; double y423Plus_2 = y[n-1] + max/50 * 423; double y161Minus_2 = y[n-1] - max/50 * 161; double y261Minus_2 = y[n-1] - max/50 * 261; double y361Minus_2 = y[n-1] - max/50 * 361; double y423Minus_2 = y[n-1] - max/50 * 423; //turim po dvi kainos koordinate, o laiko galim paimti is masyvo T[] //galim brezti linijas //y=(y2-y1)/(x2-x1)*(x-x1)+y1 double y161Plus_3 = (y161Plus_2-y161Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y161Plus_1; double y261Plus_3 = (y261Plus_2-y261Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y261Plus_1; double y361Plus_3 = (y361Plus_2-y361Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y361Plus_1; double y423Plus_3 = (y423Plus_2-y423Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y423Plus_1; double y161Minus_3 = (y161Plus_2-y161Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y161Plus_1; double y261Minus_3 = (y261Plus_2-y261Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y261Plus_1; double y361Minus_3 = (y361Plus_2-y361Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y361Plus_1; double y423Minus_3 = (y423Plus_2-y423Plus_1)/(T[n]-T[1])*(StrToTime("20:00")-T[1])+y423Plus_1; //чертим линии SetTLine(Thistle, "", T[1], y161Plus_1, StrToTime("20:00"), y161Plus_3, 0, 1); SetTLine(Thistle, "", T[1], y261Plus_1, StrToTime("20:00"), y261Plus_3, 0, 1); SetTLine(Thistle, "", T[1], y361Plus_1, StrToTime("20:00"), y361Plus_3, 0, 1); SetTLine(Thistle, "", T[1], y423Plus_1, StrToTime("20:00"), y423Plus_3, 0, 1); SetTLine(Thistle, "", T[1], y161Minus_1, StrToTime("20:00"), y161Minus_3, 0, 1); SetTLine(Thistle, "", T[1], y261Minus_1, StrToTime("20:00"), y261Minus_3, 0, 1); SetTLine(Thistle, "", T[1], y361Minus_1, StrToTime("20:00"), y361Minus_3, 0, 1); SetTLine(Thistle, "", T[1], y423Minus_1, StrToTime("20:00"), y423Minus_3, 0, 1); } return(0); } //----------------------------------------------------------------------------------------------------- void ArrayChLR(double& x[], double& y[], double& max) { double a, b, c, sx=0, sx2=0, sxy=0, sy=0; int i, n=ArraySize(x); if (n>1) { for (i=0; i<n; i++) { sx+=i+1; sy+=x[i]; sxy+=(i+1)*x[i]; sx2+=(i+1)*(i+1); } a=sx*sy-n*sxy; c=sx*sx-n*sx2; if (c!=0) a=a/c; else a=0; b=(sy-a*sx)/n; ArrayResize(y, n); max = 0; double dif[]; ArrayResize(dif, n); for (i=0; i<n; i++) { y[i]=a*(i+1)+b; dif[i] = MathAbs(Close[i] - y[i]); if(dif[i] > max) max = dif[i]; } } else Print("ArrayLR(): per mazas x masyvo elementu skaicius! n=", n); } ファイル: naktiniskfletas.mq4 22 kb Alexey Subbotin 2013.04.08 07:59 #2718 Dikii:EAから時間ごとの履歴の価格(AskとBid)を調べることは可能ですか?例えば、10分前、10秒前など。あ る一定期間の始値、終値、安値の時系列を取得する機能は知られていますが、特定の時点でAskとBidを調べる にはどうしたらよいのでしょうか。/history/server/というフォルダにticks.rawというファイルがあり、そこから理論的には今より少し前のMarket WatchのシンボルによるBidとAskの両方を取得することができます。この方向でフォーラム検索をしてみてください...。そのファイルのデータ保存の仕組みについては、記憶上では具体的なことは言えません。 Alexey Subbotin 2013.04.08 08:01 #2719 gince:先ほど、アレイについて質問させていただきました。まだ、うまくいかないようです。テスターで動かすとゼロで割れるところがある。ある配列の中にゼロがあることを意味します。どこがエラーなのかがわからない。付録のコード。WORDeでは、コメントはロシア語で行っています。申し訳ございませんでした。私のMetaeditorはロシア語をサポートしていません。エラーを見つけるのを手伝ってください。そして、それらを説明することに抵抗がなければ。 各除算の前にPrint(to what we divide)と書くと、ゼロがどこにあるかすぐにわかるのでおすすめです。 gince 2013.04.08 08:34 #2720 alsu: Print(to what we divide)を入力することをお勧めします。各除算の前に、ゼロがどこにあるかがすぐに分かります。 。 部門は1つだけです。また、CMM関数によると(フルではありますが)関数内の結果配列のデータ量が足りないと言っています。その理由がわからない。そのため、ゼロによる除算が 出るのです。 1...265266267268269270271272273274275276277278279...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
また、この変数は秘密でないとすれば、どこで明示的に設定されているのでしょうか。:)ライブラリb-PSI@Base.mqh を見ると、宣言されているだけなんですね。
しかし、それ以上のことは基本的にありません。実際、Symbol() を使用すると、デフォルトで現在の測定器の値が返されます。では、なぜここで変数が必要なのでしょうか?
この質問については、多通貨の項ですでに回答しています - current symbol =Symbol()- これはあくまで特別なケースです。
追伸:あなたのアプローチは興味深いです。他人のコードを取り出して、自分のロジックに「合わせよう」とするのですから。
私はすでにこの質問に答えています、多通貨について - 現在のシンボル = Symbol() - これは唯一の特別なケースです。
追伸:あなたは興味深いアプローチをしていますね。他人のコードを取り上げて、自分の論理に「合わせ」ようとするのです。
調整するつもりはない。ただ、どのように実装されているかは勉強したいですね。しかし、私は何もコピーしません。プロがどう考えているのか興味があります。それが本当の理由です。そこで、ご紹介します。
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0) 関数を調べています。
この関数の内部では、この変数は宣言されていません。他の2つのベースファイル(inclusionとfunction)でも宣言されていません。どこを探せばいいのかわからない。それを聞いているのです。元々全く登場しないところ、つまり宣言されたところを理解したいのです。もしよろしければ、教えていただきたいのですが...。
また、もう一つ別の変数で不思議なことがあります。bool fCheck_LevelsBLOC 関数内の以下の行。
bda_Price[li_cmd] はb-PSI@Base.mqh ライブラリで初めて言及されています。
bda_Price[2];
配列の要素が 指定されていない。だから、それぞれゼロに等しい。つまり、li_cmd 配列のパラメータである式が、0?
皆さんこんにちは。取引を開始するときにロットを増やすスクリプトを作成できるすべての人に応答してください。
仕事のやりがいのために、ここで入札を開くのか?通常、満足するのはタスクではありません...。
わからないことがあれば、私たちに聞いてください。
または仕事に 行く - そこにあなたと仕事の両方を満足させる...有償
EAから時間ごとの履歴の価格(AskとBid)を調べることは可能ですか?例えば、10分前、10秒前など。あ る一定期間の始値、終値、高値、安値を時系列で取得する機能は知られていますが、特定の時点のAskとBidを知る にはどうしたらよいのでしょう。
Askはない、Bidだけだ!ちなみに、私も含めて、みんなそう思っていますよ。
アスクまさか、ビッドだけ!?ちなみに、私も含めて、みんなそう思っていますよ。
10秒前のBidを調べる方法を、できればコードで説明してください。
先ほど、アレイについて質問させていただきました。まだ、うまくいかないようです。テスターで動かすとゼロで割れる ところがある。ある配列の中にゼロがあることを意味します。どこがエラーなのかがわからない。付録のコード。WORDeでは、コメントはロシア語で行っています。申し訳ございませんでした。私のMetaeditorはロシア語をサポートしていません。
エラーを見つけるのを手伝ってください。そして、それらを説明することに抵抗がなければ。
EAから時間ごとの履歴の価格(AskとBid)を調べることは可能ですか?例えば、10分前、10秒前など。あ る一定期間の始値、終値、安値の時系列を取得する機能は知られていますが、特定の時点でAskとBidを調べる にはどうしたらよいのでしょうか。
/history/server/というフォルダにticks.rawというファイルがあり、そこから理論的には今より少し前のMarket WatchのシンボルによるBidとAskの両方を取得することができます。この方向でフォーラム検索をしてみてください...。そのファイルのデータ保存の仕組みについては、記憶上では具体的なことは言えません。
先ほど、アレイについて質問させていただきました。まだ、うまくいかないようです。テスターで動かすとゼロで割れるところがある。ある配列の中にゼロがあることを意味します。どこがエラーなのかがわからない。付録のコード。WORDeでは、コメントはロシア語で行っています。申し訳ございませんでした。私のMetaeditorはロシア語をサポートしていません。
エラーを見つけるのを手伝ってください。そして、それらを説明することに抵抗がなければ。
各除算の前にPrint(to what we divide)と書くと、ゼロがどこにあるかすぐにわかるのでおすすめです。
Print(to what we divide)を入力することをお勧めします。各除算の前に、ゼロがどこにあるかがすぐに分かります。
。
部門は1つだけです。また、CMM関数によると(フルではありますが)関数内の結果配列のデータ量が足りないと言っています。その理由がわからない。そのため、ゼロによる除算が 出るのです。