[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 84 1...777879808182838485868788899091...537 新しいコメント Артур 2011.02.09 01:46 #831 NameLess: お気づきのように、本当の理由はコードを見ることではなく、その仕組みを理解することにあります。Expert Advisorを信頼するならば、成功し、すべてがうまくいくことを祈ります) 私自身、自転車を発明し、フクロウをゼロから書きましたが、物事がどこでどのように動くのか、なぜ動かないのか、どこを見ればエラーが出るのかを知っています) そんなもんだ) ありがとうございます。もう、いい線いってますね!)))私は掘り下げる必要がありましたが、私は私が欲しかったものを実現しました(少なくとも、何とか動作します :)))). Артур 2011.02.09 02:04 #832 NameLess: 注文番号管理の設定方法をご存知ですか?そうですね、この質問には思わず笑みがこぼれ、ところどころで笑いに変わりますね(^^)))でも、mt-shのコードをつかい始めてからまだ1週間くらいです。私はまだすべての単語を知りません ))))スマート ))) Nameless 2011.02.09 02:15 #833 nemo811: 注文番号管理の設定方法をご存知ですか?そうですね、この質問には、おそらく隠しきれない笑いが起こり、ところどころで笑いに変わります))))でも、mt-shのコードをつかい始めてからまだ1週間くらいです。私はまだすべての単語を知りません ))))賢い )) 専門家を名乗ることはできませんが))) 番号管理の意味がよくわからないのですが? ある条件で2回注文を開く必要がある場合、この条件を作成する必要があります。 一般的に、私は半年ほど前に自分でプログラムを書き始めましたが、ある簡単な内容が役に立ちました。EAに何をさせたいか、特定のコードの一部を考えるのです。 この場合、例を挙げていただいた方がわかりやすいかもしれませんし、解決策がわかれば、何をどうすればいいのか、より具体的にお伝えできるかと思います:) Артур 2011.02.09 02:20 #834 83ページの例、sergeevの タスク コードはうまくいきました - ありがとうございます。でも、経験者がそういう言葉を発すると、「どうしたんだろう」と思うようになる。 ))) Nameless 2011.02.09 02:24 #835 nemo811: 83ページの例、sergeevの タスク コードはうまくいきました - ありがとうございます。でも、経験者がそういう言葉を発すると、「どうしたんだろう」と思うようになる。 ))) コードがやるべきことをやっていれば、それでいいのです))) 私が言いたかったのは、コードがノンストップで注文を開くことができるということでしょうが、すべてを一度だけ開いて延期するようにしましたので、大丈夫です)) Артур 2011.02.09 02:26 #836 NameLess: コードがやるべきことをやっていればOK))おそらく私が言いたかったのは、コードはノンストップで注文を開くことができるということですが、1回のオープンとデフォールトでやっています)。 よかったです。また、ありがとうございました。 Nameless 2011.02.09 03:12 #837 nemo811: ちなみに、以下のようなものを入れることをお勧めします。 if ( OrdersTotal()!=0) { BUY = false; BUY_STOP = false; BUY_LIMIT = false; SELL = false; SELL_STOP = false; SELL_LIMIT = false; } これは、クライアントを再起動する必要がある場合に、オープンポジションを持って いる場合の保護であり、そうでない場合は、すべての注文バッチを再開することになります。 また、「それぞれの行について論理的に考えてみて、何が原因で動作しないのかを考えてみてください。 Владимир Тезис 2011.02.09 09:22 #838 nemo811: 現在制作中の少し古いバージョンです。作者のdrknn さんから、アップロードの許可をいただきました。 彼は、単にそれを世に出すことを許可しただけでなく、あなたが望むようにコードを変更し、それを販売し、さらにあなたが望む人に著作権を与えることを公然と許可したのです) ただ、そこで権利関係の争いになるのは勘弁してください :) Vigan 2011.02.09 10:48 #839 sergeev: インジケータ経由https://docs.mql4.com/ru/indicators/iBandsOnArray おつかれさまでした Артур 2011.02.09 11:50 #840 NameLess: ちなみに、以下のようなものを入れることをお勧めします。 if ( OrdersTotal()!=0) { BUY = false; .... これは、クライアントを再起動する必要がある場合に、未決済のポジションがある場合の保護機能です。 ありがとうございます。これは重要なポイントです。この問題を解決し、カウンターを追加しました(sergeev さんに感謝します)。 これでコードは以下のようになりました(端末を再起動しても不要なデータは開きません)。 //-------------------------------------------------------------------- extern int MAGIC = 0; //уникальный номер ордера extern bool BUY = false; //открыть ордер BUY extern bool BUY_STOP = false; //поставить ордер BUY STOP extern bool BUY_LIMIT = false; //поставить ордер BUY LIMIT extern bool SELL = false; //открыть ордер SELL extern bool SELL_STOP = false; //поставить ордер SELL STOP extern bool SELL_LIMIT = false; //поставить ордер SELL LIMIT extern double Lot = 0.1; //объем ордера extern int takeprofit = 0; //уровень выставления TP, если 0, то TP не выставляется extern int stoploss = 0; //уровень выставления SL, если 0, то SL не выставляется extern int DistanceSet = 40; //расстояние от рынка для отложенника extern int Proskalz = 3; //максимально допустимое отклонение цены для рыночных ордеров //-------------------------------------------------------------------- double SL,TP; //-------------------------------------------------------------------- int start() { if (BUY) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy"); BUY=false; } if (SELL) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell"); SELL=false; } if (BUY_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask + DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Stop"); BUY_STOP=false; } if (SELL_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Bid - DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid - DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Stop"); SELL_STOP=false; } if (BUY_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Ask - DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Limit"); BUY_LIMIT=false; } if (SELL_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Bid + DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Limit"); SELL_LIMIT=false; } return(0); } void OPENORDER(string ord) { int SchBuy=SchBuy_b(MAGIC); int SchSell=SchSell_b(MAGIC); int SchBuyStop=SchBuyStop_b(MAGIC); int SchSellStop=SchSellStop_b(MAGIC); int SchBuyLimit=SchBuyLimit_b(MAGIC); int SchSellLimit=SchSellLimit_b(MAGIC); int ticket = -1; int err; while (ticket<0) { if (SchBuy<1) {if (ord=="Buy") ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (SchSell<1) {if (ord=="Sell") ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (SchBuyStop<1) {if (ord=="Buy Stop") ticket=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (SchSellStop<1) {if (ord=="Sell Stop") ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (SchBuyLimit<1) {if (ord=="Buy Limit") ticket=OrderSend(Symbol(),OP_BUYLIMIT, Lot,NormalizeDouble(Ask - DistanceSet*Point,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (SchSellLimit<1) {if (ord=="Sell Limit") ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lot,NormalizeDouble(Bid + DistanceSet*Point,Digits),Proskalz,SL,TP,"",MAGIC,0);} if (ticket==-1) //неудачная попытка { ShowERROR(); err++;Sleep(2000);RefreshRates(); } if (ticket || err >10) return; } return; } //-------------------------------------------------------------------- void ShowERROR() { int err=GetLastError(); switch ( err ) { case 1: return; case 2: Alert("Нет связи с торговым сервером ",Symbol());return; case 3: Alert("Error неправильные параметры ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ",Symbol());return; case 134: Alert("Недостаточно денег ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ",Symbol());return; case 129: Alert("Error Неправильная цена ",Symbol());return; case 131: Alert("Error Неправильный объем ",Symbol());return; case 4200:Alert("Error Объект уже существует ",Symbol());return; default: Alert("Error " ,err," ",Symbol());return; } } +適切なカウンタ。 ありがとうございます。 1...777879808182838485868788899091...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
お気づきのように、本当の理由はコードを見ることではなく、その仕組みを理解することにあります。Expert Advisorを信頼するならば、成功し、すべてがうまくいくことを祈ります)
私自身、自転車を発明し、フクロウをゼロから書きましたが、物事がどこでどのように動くのか、なぜ動かないのか、どこを見ればエラーが出るのかを知っています)
そんなもんだ)
ありがとうございます。もう、いい線いってますね!)))私は掘り下げる必要がありましたが、私は私が欲しかったものを実現しました(少なくとも、何とか動作します :)))).
注文番号管理の設定方法をご存知ですか?そうですね、この質問には、おそらく隠しきれない笑いが起こり、ところどころで笑いに変わります))))でも、mt-shのコードをつかい始めてからまだ1週間くらいです。私はまだすべての単語を知りません ))))賢い ))
専門家を名乗ることはできませんが)))
番号管理の意味がよくわからないのですが? ある条件で2回注文を開く必要がある場合、この条件を作成する必要があります。
一般的に、私は半年ほど前に自分でプログラムを書き始めましたが、ある簡単な内容が役に立ちました。EAに何をさせたいか、特定のコードの一部を考えるのです。
この場合、例を挙げていただいた方がわかりやすいかもしれませんし、解決策がわかれば、何をどうすればいいのか、より具体的にお伝えできるかと思います:)
83ページの例、sergeevの タスク
コードはうまくいきました - ありがとうございます。でも、経験者がそういう言葉を発すると、「どうしたんだろう」と思うようになる。
)))
83ページの例、sergeevの タスク
コードはうまくいきました - ありがとうございます。でも、経験者がそういう言葉を発すると、「どうしたんだろう」と思うようになる。
)))
コードがやるべきことをやっていれば、それでいいのです))) 私が言いたかったのは、コードがノンストップで注文を開くことができるということでしょうが、すべてを一度だけ開いて延期するようにしましたので、大丈夫です))
コードがやるべきことをやっていればOK))おそらく私が言いたかったのは、コードはノンストップで注文を開くことができるということですが、1回のオープンとデフォールトでやっています)。
よかったです。また、ありがとうございました。
ちなみに、以下のようなものを入れることをお勧めします。
if ( OrdersTotal()!=0)
{
BUY = false;
BUY_STOP = false;
BUY_LIMIT = false;
SELL = false;
SELL_STOP = false;
SELL_LIMIT = false;
}
これは、クライアントを再起動する必要がある場合に、オープンポジションを持って いる場合の保護であり、そうでない場合は、すべての注文バッチを再開することになります。
また、「それぞれの行について論理的に考えてみて、何が原因で動作しないのかを考えてみてください。
現在制作中の少し古いバージョンです。作者のdrknn さんから、アップロードの許可をいただきました。
彼は、単にそれを世に出すことを許可しただけでなく、あなたが望むようにコードを変更し、それを販売し、さらにあなたが望む人に著作権を与えることを公然と許可したのです)
ただ、そこで権利関係の争いになるのは勘弁してください :)
インジケータ経由https://docs.mql4.com/ru/indicators/iBandsOnArray
ちなみに、以下のようなものを入れることをお勧めします。
if ( OrdersTotal()!=0)
{
BUY = false;
....
これは、クライアントを再起動する必要がある場合に、未決済のポジションがある場合の保護機能です。
ありがとうございます。これは重要なポイントです。この問題を解決し、カウンターを追加しました(sergeev さんに感謝します)。
これでコードは以下のようになりました(端末を再起動しても不要なデータは開きません)。
+適切なカウンタ。
ありがとうございます。