[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 832 1...825826827828829830831832833834835836837838839...1145 新しいコメント [Deleted] 2010.09.06 11:15 #8311 Vinin: 次回は何が変わるのでしょうか? 同じことです。ポジションがクローズされる - 保留注文が設定される、など。最後の値を返す関数(例:OrderCloseTime())がある。ティックごとに、最後に閉じたポジション(例えばポジション#1)の時間値を取得します。新しいティックで次のポジション(ポジション#2)を閉じるとき、私はこの(#2)ポジションを閉じるための時間を取得します。OrderCloseTime()の値が相対的に変更された。といった具合に。変数がどう変化したとか、どうでもいいんです。私にとって重要なのは、変数が変わったという事実そのものなのです。最後に閉じたポジションのOrderCloseTime()が、その次のポジションのOrderCloseTime()よりも大きければ、BLA-BLA-BLAとする、という論理演算の ようなものです。また、-もし最後のクローズポジションのOrderClosePrice()が最後のポジションのOrderClosePrice()と等しくない場合は、BLA-BLA-BLAを作成します。それとも、そのような比較はできないのでしょうか? 削除済み 2010.09.06 19:04 #8312 ここで質問です。例えば、私たちのEAが、ある指標(例えば私はCCIを取りました)が下から上にあるレベル(赤い線)を越えたら買いシグナルを表示し、それぞれ、下がったら売りシグナルを表示するとします。バーAの形成中に一度だけ注文を開くようにするにはどうしたらよいでしょうか。Aのバーが形成されている間に、指標はレベル(赤い線)を何度も下向きと上向きに交差したとします。すでに述べたように、注文は一度だけ開けるようにすべきです。 必要なのは、バーD(チャート上の状況2)で受信する売りシグナルが、バーAで開いた注文を決済せず、何 ら影響を受けないようにすることです。 すなわち、注文が開かれた後、Expert Advisorによって制御されることはありません。 よろしくお願いします。 [Deleted] 2010.09.06 19:05 #8313 EAにSequent Demarqueのコードの一部を添付するのを手伝ってくださいhttps://www.mql5.com/ru/code/7372 はこのように動作しません。 num=0とする。 for(i=bars; i>=0; i--) { if ((iClose(NULL,PERIOD_M5,i+1)<iClose(NULL,PERIOD_M5,i+4) && num!=0 )){ num++です。 if ((iClose(NULL,PERIOD_M5,i+1)<iClose(NULL,PERIOD_M5,i+4)))。 を買う............。 if (num==9) を閉じる............。 fanat 2010.09.06 19:17 #8314 Vinin: 1.最初のタイプの注文数を数える 2.タイプ2の注文数をカウントする 3.結果を比較する ビニンさんへありがとうございました。 Oleg 2010.09.06 20:08 #8315 Forrim: ここで質問です。EAの買いシグナルは、インジケーター(例えばCCIを取りました)があるレベル(赤い線)を下から上に越えたときに、売りシグナルは上から下に越えたときに、それぞれ表示されるとします。バーAの形成中に一度だけ注文を開くようにするにはどうしたらよいでしょうか。Aのバーが形成されている間に、指標はレベル(赤い線)を何度も下向きと上向きに交差したとします。すでに述べたように、注文は一度しか開けないようにすべきです。 。 これは、バーD(チャート上の状況2)で受け取る売りシグナルでは、バーAで開いた注文を閉じず、いかなる影響 も受けないようにする必要があります。つまり、注文が開かれた後、EAによって制御されることはないのです。ありがとうございました。 実は、CCIは乱高下するので、バーが閉店して新しいバーがオープンしてから確認した方がいいんです。 ローソク足の開始時刻が異なるか(異なれば注文が開く)、同じか(=>注文が開かない)をチェックしたい場合、各クロスで開始時刻をグローバル変数 に格納する必要があります。 Artyom Trishkin 2010.09.06 21:36 #8316 Forrim: ここで質問です。例えば、私たちのEAが、ある指標(例えば私はCCIを取りました)が下から上にあるレベル(赤い線)を越えたら買いシグナルを表示し、それぞれ、下がったら売りシグナルを表示するとします。バーAの形成中に一度だけ注文を開くようにするにはどうしたらよいでしょうか。Aのバーが形成されている間に、指標はレベル(赤い線)を何度も下向きと上向きに交差したとします。すでに述べたように、注文は一度しか開けないようにするべきだ。 必要なのは、バーD(チャート上の状況2)で受信する売りシグナルが、バーAで開いた注文を決済せず、何 ら影響を受けないようにすることです。 すなわち、注文が開かれた後、Expert Advisorによって制御されることはありません。 よろしくお願いします。 このタイプのポジションが既に開いている場合は、それ以上開かないようにしてください。 [Deleted] 2010.09.07 07:08 #8317 //--------------------------------------------------------------- 1 -- // Численные значения для М15 extern double StopLoss =20; // SL для открываемого ордера extern double TakeProfit =20; // ТР для открываемого ордера extern double Step_Sar=0.02; // Шаг Sar extern double Maximum_Sar=0.2; // Максимум Sar extern double Lot=0.01; // Жестко заданное колич. лотов bool Work=true; // Эксперт будет работать. //--------------------------------------------------------------- 2 -- int start() { int Total, // Количество ордеров в окне Ticket; // Номер ордера double Sar_1 , // Значен. Sar текущее Sar_0 , // Значение Sar предыдущей свечки Price, // Цена ордера SL, // SL ордера TP; // TP ордера bool Ans =false, // Ответ сервера после закрытия Cls_B=false, // Критерий для закрытия Buy Cls_S=false, // Критерий для закрытия Sell Opn_B=false, // Критерий для открытия Buy Opn_S=false; // Критерий для открытия Sell //--------------------------------------------------------------- 3 -- // Учёт ордеров Total=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symbol())continue; // Не наш фин. инструм if (OrderType()>1) // Попался отложенный { Alert("Обнаружен отложенный ордер. Эксперт не работает."); return; // Выход из start() } Total++; // Счётчик рыночн. орд if (Total>1) // Не более одного орд { Alert("Несколько рыночных ордеров. Эксперт не работает."); return; // Выход из start() } Price =OrderOpenPrice(); // Цена выбранн. орд. SL =OrderStopLoss(); // SL выбранного орд. TP =OrderTakeProfit(); // TP выбранного орд. Lot =OrderLots(); // Количество лотов } } //--------------------------------------------------------------- 6 -- // Торговые критерии Sar_1=iSAR(NULL, 0, 0.02, 0.2, 1); // Sar_1 Sar_0=iSAR(NULL, 0, 0.02, 0.2, 0); // Sar_0 if (Sar_0 > Price && Sar_1 < Price) // если Sar меняет положение { Opn_B=true; // Критерий откр. Buy } if (Sar_0 < Price && Sar_1 > Price) // если Sar меняет положение { Opn_S=true; // Критерий откр. Sell } //--------------------------------------------------------------- 7 -- { if (Opn_B==true) { // критерий откр. Buy RefreshRates(); // Обновление данных SL=(20+Ask-Bid)*Bid; // Вычисление SL откр. TP=20*Bid; // Вычисление TP откр. Alert("Попытка открыть Buy. Ожидание ответа.."); Ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,0,SL,TP);//Открытие Buy } if (Fun_Error(GetLastError())==1) // Обработка ошибок return; // Выход из start() if (Opn_S==true) // критерий откр. Sell { // критерий откр. Sell RefreshRates(); // Обновление данных SL=(20+Ask-Bid)*Ask; // Вычисление SL откр. TP=20*Ask; // Вычисление TP откр. Alert("Попытка открыть Sell. Ожидание ответа.."); Ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,0,SL,TP);//Открытие Sel return; // Выход из start() } if (Fun_Error(GetLastError())==1) // Обработка ошибок return; // Выход из start() } //--------------------------------------------------------------- 9 -- return; // Выход из start() } //-------------------------------------------------------------- 10 -- int Fun_Error(int Error) // Ф-ия обработ ошибок { switch(Error) { // Преодолимые ошибки case 4: Alert("Торговый сервер занят. Пробуем ещё раз.."); Sleep(3000); // Простое решение return(1); // Выход из функции case 135:Alert("Цена изменилась. Пробуем ещё раз.."); RefreshRates(); // Обновим данные return(1); // Выход из функции case 136:Alert("Нет цен. Ждём новый тик.."); while(RefreshRates()==false) // До нового тика Sleep(1); // Задержка в цикле return(1); // Выход из функции case 137:Alert("Брокер занят. Пробуем ещё раз.."); Sleep(3000); // Простое решение return(1); // Выход из функции case 146:Alert("Подсистема торговли занята. Пробуем ещё.."); Sleep(500); // Простое решение return(1); // Выход из функции // Критические ошибки case 2: Alert("Общая ошибка."); return(0); // Выход из функции case 5: Alert("Старая версия терминала."); Work=false; // Больше не работать return(0); // Выход из функции case 64: Alert("Счет заблокирован."); Work=false; // Больше не работать return(0); // Выход из функции case 133:Alert("Торговля запрещена."); return(0); // Выход из функции case 134:Alert("Недостаточно денег для совершения операции."); return(0); // Выход из функции default: Alert("Возникла ошибка ",Error); // Другие варианты return(0); // Выход из функции } } //-------------------------------------------------------------- 11 -- 初歩的なEAで、パラボリックSARのインジケータが価格チャートと相対的に変化したときにポジションを開く必要があり、M15で動作します。 現在のローソク足と直前のローソク足の指標位置を比較するEAです。 コンパイル中にエラーやバグがない、タブでテストでは "結果" "グラフ" "レポート "は空ですが、ログではこのです: "画像"。 私は2日目にコーディングをしています。私は今までコーディングしたことがありません。行き詰っています、可能なら助けてください。 techno 2010.09.07 07:38 #8318 T.H.C. やってみる ファイル: 0000001_1.mq4 3 kb [Deleted] 2010.09.07 08:02 #8319 Techno: T.H.C. これを試してみてください。 本当にありがとうございます。こんなに早い対応で、こんなにコードが変わるとは思ってもいませんでした。 基本的なmql以外のプログラミングの本についてアドバイスをお願いします。 techno 2010.09.07 08:07 #8320 T.H.C.: ありがとうございました。これほどのスピードとコードの変化は予想していませんでした。 基本的なmqlの他に、プログラミングの本をもっと教えてください。 ベースの方しか読んでないから、もっと練習しないとダメでしょ。 1...825826827828829830831832833834835836837838839...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
次回は何が変わるのでしょうか?
必要なのは、バーD(チャート上の状況2)で受信する売りシグナルが、バーAで開いた注文を決済せず、何 ら影響を受けないようにすることです。
すなわち、注文が開かれた後、Expert Advisorによって制御されることはありません。
よろしくお願いします。
EAにSequent Demarqueのコードの一部を添付するのを手伝ってくださいhttps://www.mql5.com/ru/code/7372
はこのように動作しません。
num=0とする。
for(i=bars; i>=0; i--)
{
if ((iClose(NULL,PERIOD_M5,i+1)<iClose(NULL,PERIOD_M5,i+4) && num!=0 )){
num++です。
if ((iClose(NULL,PERIOD_M5,i+1)<iClose(NULL,PERIOD_M5,i+4)))。
を買う............。
if (num==9)
を閉じる............。
1.最初のタイプの注文数を数える
2.タイプ2の注文数をカウントする
3.結果を比較する
ビニンさんへありがとうございました。
ここで質問です。EAの買いシグナルは、インジケーター(例えばCCIを取りました)があるレベル(赤い線)を下から上に越えたときに、売りシグナルは上から下に越えたときに、それぞれ表示されるとします。バーAの形成中に一度だけ注文を開くようにするにはどうしたらよいでしょうか。Aのバーが形成されている間に、指標はレベル(赤い線)を何度も下向きと上向きに交差したとします。すでに述べたように、注文は一度しか開けないようにすべきです。 。
これは、バーD(チャート上の状況2)で受け取る売りシグナルでは、バーAで開いた注文を閉じず、いかなる影響 も受けないようにする必要があります。
つまり、注文が開かれた後、EAによって制御されることはないのです。
ありがとうございました。
実は、CCIは乱高下するので、バーが閉店して新しいバーがオープンしてから確認した方がいいんです。
ローソク足の開始時刻が異なるか(異なれば注文が開く)、同じか(=>注文が開かない)をチェックしたい場合、各クロスで開始時刻をグローバル変数 に格納する必要があります。
ここで質問です。例えば、私たちのEAが、ある指標(例えば私はCCIを取りました)が下から上にあるレベル(赤い線)を越えたら買いシグナルを表示し、それぞれ、下がったら売りシグナルを表示するとします。バーAの形成中に一度だけ注文を開くようにするにはどうしたらよいでしょうか。Aのバーが形成されている間に、指標はレベル(赤い線)を何度も下向きと上向きに交差したとします。すでに述べたように、注文は一度しか開けないようにするべきだ。
必要なのは、バーD(チャート上の状況2)で受信する売りシグナルが、バーAで開いた注文を決済せず、何 ら影響を受けないようにすることです。
すなわち、注文が開かれた後、Expert Advisorによって制御されることはありません。
よろしくお願いします。
初歩的なEAで、パラボリックSARのインジケータが価格チャートと相対的に変化したときにポジションを開く必要があり、M15で動作します。
現在のローソク足と直前のローソク足の指標位置を比較するEAです。
コンパイル中にエラーやバグがない、タブでテストでは "結果" "グラフ" "レポート "は空ですが、ログではこのです: "画像"。
私は2日目にコーディングをしています。私は今までコーディングしたことがありません。行き詰っています、可能なら助けてください。
T.H.C. やってみる
T.H.C. これを試してみてください。
本当にありがとうございます。こんなに早い対応で、こんなにコードが変わるとは思ってもいませんでした。
基本的なmql以外のプログラミングの本についてアドバイスをお願いします。
ありがとうございました。これほどのスピードとコードの変化は予想していませんでした。
基本的なmqlの他に、プログラミングの本をもっと教えてください。