どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1097 1...109010911092109310941095109610971098109911001101110211031104...1178 新しいコメント A13ksandr 2016.09.15 11:32 #10961 alvlaf:最後にあげたコードは一歩進んでいて、取引を全く行わない(だから禁止が効いている)のです。なぜ全くないのか、まだ理解できていません。ログのスクリーンショットを添付します。当初はProfitableSerieという変数で、逆の機能を持っていました。そして、もうひとつ付け加えたいことがあります。int OnInit() // abeiks && LRA: замечания приняты))) { if (!GlobalVariableCheck("AllowNewOrders")) GlobalVariableSet("AllowNewOrders",1); return(INIT_SUCCEEDED); } // OnDeinit больше не нужен void OnTick() { if (CountTrades() == 0) // Количество ордеров должно равняться нулю { if ((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))) // Если последняя сделка убыточная, то открывается такая же, но с увеличенным лотом { GlobalVariableSet("AllowNewOrders", 0); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble(LotsLastHistOrder()*Multiplier, 2); ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); return; } if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0) // Если прибыль последней сделки равняется нулю, то открывается такая же { GlobalVariableSet("AllowNewOrders", 0); Type = TypeLastHistOrder(); if (Type == OP_BUY) Price = Ask; if (Type == OP_SELL) Price = Bid; Lot = NormalizeDouble(LotsLastHistOrder(), 2); ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic); return; } if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY)) || (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL))) || CountHistTrades() == 0)// Если последняя сделка прибыльная, то открывается ордер { if (GlobalVariableGet("AllowNewOrders") > 0) return; if (SignalBuy() && MaxOpenOrders > OrdersTotal()) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic); if (ticket>0) GlobalVariableSet("AllowNewOrders", 0); return; } if (SignalSell() && MaxOpenOrders > OrdersTotal()) { ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic); if (ticket>0) GlobalVariableSet("AllowNewOrders", 0); return; } } GlobalVariableSet("AllowNewOrders", 1); } } この方法で試してみてください。また何か出てきそうな予感が...。 linar 2016.09.15 12:04 #10962 こんにちは、私はMQL4チュートリアルを読み始めました(私はプログラミングを学びたい)、しかしそれは古いバージョンです、あなたは何をするように助言しますか? チュートリアルを読んで、次にドキュメントを読みますか? Nauris Zukas 2016.09.15 12:07 #10963 LRA: // ИХМО так нагляднее 同意見です! A13ksandr 2016.09.16 04:43 #10964 linar:こんにちは、私はMQL4チュートリアルを読み始めました(私はプログラミングを学びたい)、しかし、それは古いバージョンです、あなたは何をするように助言するでしょうか?C言語でプログラミングをしたことがある人は、無料のインジケーターや簡易インジケーター、Expert Advisorのソースコードに目を通し、ヘルプを読むとよいでしょう。全くプログラミングをしていないのであれば、...もし、あなたがプログラミングを全く知らないのであれば、ドキュメントを読んでください。)))また、このフォーラムにチュートリアルがあります: https://www.mql5.com/ru/forum/108883 Aleksandr Afanasenko 2016.09.16 04:55 #10965 A13ksandr:ただ、最初はProfitableSerieという変数で、逆の機能を持っていたんです。そして、もうひとつ付け加えることがあります。この方法で試してみてください。また何か出てきそうな予感が...。 もう一歩前進 - ボットは1つの取引を開始しましたが、それで終わりです。他に何も開かず、試行錯誤のメッセージもログに残らない...。 A13ksandr 2016.09.16 05:23 #10966 alvlaf: また一歩前進しました。ボットは1つの取引を開始しましたが、それで終わりでした。ボットは他に何も開かず、ログにも試行錯誤のメッセージはありません...。コードの一部だけを正しく配置したかったのですが、その後、コード全体をコピーしても、エラーは直りませんでした。最後の条件ではこのようになるはずです。 if (GlobalVariableGet("AllowNewOrders") == 0) return;しかし、実はあの時、彼は1つも取引をすべきではなかったのです。最初の2つの条件のうち、いくつかは正しく動作していません。とりあえずコンディションを固定し、様子を見てみましょう :)アップデイト:念のためOnDeinitを復活させる。void OnDeInit() { GlobalVariableSet("AllowNewOrders",1); } Aleksandr Afanasenko 2016.09.16 09:06 #10967 A13ksandr:くそー、もともと正しいコードの一部だけを挿入したかったのに、全部コピーしてしまって、このミスを修正していなかったんだ。最後の条件では、このようになるはずです。しかし、実はあの時、彼は1つも取引をすべきではなかったのです。最初の2つの条件のうち、いくつかは正しく動作していません。とりあえずコンディションを固定し、様子を見てみましょう :)アップデイト:念のためOnDeinitを復活させる。 試してみたところ、マイナスで1回取引した後、1ティックごとにポジションを 開くようになりました。 A13ksandr 2016.09.16 11:18 #10968 alvlaf: 試しに、マイナスで1回取引した後、1ティックごとにポジションを開くようにしました。最初の2つの条件を1行目に書くif(GlobalVariableGet("AllowNewOrders") == 1) return;そして、最初のテストは1組で試してみてください。ブローカーのGrandCapital? Aleksandr Afanasenko 2016.09.16 12:38 #10969 A13ksandr:最初の2つの条件を1行目に書くif (GlobalVariableGet("AllowNewOrders") == 1) return;そして、最初のテストは1組で試してみてください。ブローカー GrandCapital?//----------------------------------------------------------------------int OnInit(){if (!GlobalVariableCheck("AllowNewOrders"))GlobalVariableSet("AllowNewOrders",1)。return(INIT_SUCCEED);}//----------------------------------------------------------------------void OnDeInit(){GlobalVariableSet("AllowNewOrders",1)。}//----------------------------------------------------------------------void OnTick(){if (GlobalVariableGet("AllowNewOrders") == 1) return;{if (CountTrades() == 0) // 注文数はゼロに等しくなければなりません。{if ((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) < PriceOpenLastHistOrder(OP_BUY))|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) > PriceOpenLastHistOrder(OP_SELL))// 最後の取引が負けた場合、同じ取引が開始されますが、ロットは大きくなります。{GlobalVariableSet("AllowNewOrders", 0);Type = TypeLastHistOrder();if (Type == OP_BUY) Price = Ask;if (Type == OP_SELL) Price = Bid;Lot = NormalizeDouble(LotsLastHistOrder()*Multiplier, 2)です。ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);を返します。}if (GlobalVariableGet("AllowNewOrders") == 1) return;{if (PriceCloseLastHistOrder() == PriceOpenLastHistOrder() && CountHistTrades() > 0)//最後の取引の利益が ゼロに等しい場合、同じ取引が開始されます。{GlobalVariableSet("AllowNewOrders", 0);Type = TypeLastHistOrder();if (Type == OP_BUY) Price = Ask;if (Type == OP_SELL) Price = Bid;Lot = NormalizeDouble(LotsLastHistOrder(), 2)。ticket = OrderSend(Symbol(), Type, Lot, Price, Slippage, 0, 0, IntegerToString(Exp), Magic);を返します。}if (((TypeLastHistOrder() == OP_BUY && PriceCloseLastHistOrder(OP_BUY) > PriceOpenLastHistOrder(OP_BUY))|| (TypeLastHistOrder() == OP_SELL && PriceCloseLastHistOrder(OP_SELL) < PriceOpenLastHistOrder(OP_SELL))|| CountHistTrades() == 0)// 最後の取引で利益が出た場合、注文が開かれます。{if (GlobalVariableGet("AllowNewOrders") == 0) return;if (SignalBuy() && MaxOpenOrders > OrdersTotal()){ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, IntegerToString(Exp), Magic)です。if (ticket>0) GlobalVariableSet("AllowNewOrders", 0);を返します。}if (SignalSell() && MaxOpenOrders > OrdersTotal()){ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, IntegerToString(Exp), Magic)です。if (ticket>0) GlobalVariableSet("AllowNewOrders", 0);を返します。}}}GlobalVariableSet("AllowNewOrders", 1);}}}そう、グランドキャピタルです。ちゃんと入れたか?また取引を開始しなくなった。 Any rookie question, so エラー、バグ、質問 MQL5 Ordersend for Binary wishmast 2016.09.16 13:04 #10970 みんな、もう頭を悩ませているんだ。高値と安値、例えば8本のローソク足で、1/4の利食いでEAに保留注文を出させるにはどうしたらいいでしょうか。こんな感じでやってます。double Vhod1=iHighest(Symbol(),0,MODE_HIGH,8,0);double Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0);double TP=((Vhod1-Vhod2)/4)+Vhod1;パラメータを変更しようとしたが、間違ったストップが表示されたり、価格が7.00000に設定されたりして、どこから来ているのか不明である。 1...109010911092109310941095109610971098109911001101110211031104...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
最後にあげたコードは一歩進んでいて、取引を全く行わない(だから禁止が効いている)のです。なぜ全くないのか、まだ理解できていません。ログのスクリーンショットを添付します。
当初はProfitableSerieという変数で、逆の機能を持っていました。そして、もうひとつ付け加えたいことがあります。
この方法で試してみてください。また何か出てきそうな予感が...。
こんにちは、私はMQL4チュートリアルを読み始めました(私はプログラミングを学びたい)、しかし、それは古いバージョンです、あなたは何をするように助言するでしょうか?
C言語でプログラミングをしたことがある人は、無料のインジケーターや簡易インジケーター、Expert Advisorのソースコードに目を通し、ヘルプを読むとよいでしょう。
全くプログラミングをしていないのであれば、...もし、あなたがプログラミングを全く知らないのであれば、ドキュメントを読んでください。)))
また、このフォーラムにチュートリアルがあります: https://www.mql5.com/ru/forum/108883
ただ、最初はProfitableSerieという変数で、逆の機能を持っていたんです。そして、もうひとつ付け加えることがあります。
この方法で試してみてください。また何か出てきそうな予感が...。
また一歩前進しました。ボットは1つの取引を開始しましたが、それで終わりでした。ボットは他に何も開かず、ログにも試行錯誤のメッセージはありません...。
コードの一部だけを正しく配置したかったのですが、その後、コード全体をコピーしても、エラーは直りませんでした。最後の条件ではこのようになるはずです。
しかし、実はあの時、彼は1つも取引をすべきではなかったのです。最初の2つの条件のうち、いくつかは正しく動作していません。とりあえずコンディションを固定し、様子を見てみましょう :)
アップデイト:念のためOnDeinitを復活させる。
くそー、もともと正しいコードの一部だけを挿入したかったのに、全部コピーしてしまって、このミスを修正していなかったんだ。最後の条件では、このようになるはずです。
しかし、実はあの時、彼は1つも取引をすべきではなかったのです。最初の2つの条件のうち、いくつかは正しく動作していません。とりあえずコンディションを固定し、様子を見てみましょう :)
アップデイト:念のためOnDeinitを復活させる。
試しに、マイナスで1回取引した後、1ティックごとにポジションを開くようにしました。
最初の2つの条件を1行目に書く
if(GlobalVariableGet("AllowNewOrders") == 1) return;
そして、最初のテストは1組で試してみてください。
ブローカーのGrandCapital?
最初の2つの条件を1行目に書く
if (GlobalVariableGet("AllowNewOrders") == 1) return;
そして、最初のテストは1組で試してみてください。
ブローカー GrandCapital?
}
そう、グランドキャピタルです。ちゃんと入れたか?また取引を開始しなくなった。
みんな、もう頭を悩ませているんだ。高値と安値、例えば8本のローソク足で、1/4の利食いでEAに保留注文を出させるにはどうしたらいいでしょうか。
こんな感じでやってます。
double Vhod1=iHighest(Symbol(),0,MODE_HIGH,8,0);
double Vhod2=iLowest(Symbol(),0,MODE_LOW,8,0);
double TP=((Vhod1-Vhod2)/4)+Vhod1;
パラメータを変更しようとしたが、間違ったストップが表示されたり、価格が7.00000に設定されたりして、どこから来ているのか不明である。