どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 94 1...87888990919293949596979899100101...1178 新しいコメント Alexey Semenov 2013.08.27 04:17 #931 void CheckForClose() { double PriceHigh, PriceLow; //---- go trading only for first tiks of new bar if(Volume[0]>1) return; PriceHigh = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 1, 0); PriceLow = iCustom (Symbol(), 0, "ExtremeTMALine", TimeFrame, HalfLength , Price, ATRMultiplier, ATRPeriod, Interpolate, TrendThreshold, Distances, 2, 0); for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=Magic || OrderSymbol()!=Symbol()) continue; //---- check order type if(OrderType()==OP_BUY) { if(Low[1]<=PriceHigh && Ask>PriceHigh) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White); break; } if(OrderType()==OP_SELL) { if(Ask<=PriceLow && High[1]>PriceLow) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White); break; } } //---- } アートメディア70 ラムスの話に戻りますが、価格が指標線を 越えた時にポジションを閉じることについて。この関数にエラーがあると思います if(音量[0]>1) return; チュートリアルで、ティックをカウントする代わりに、バーの出現時にポジションをオープン(クローズ)することができると読みました。可能なのでしょうか?もしそうなら、私の状況に合わせたプログラム方法をヒントとして教えてください。 Paladin80 2013.08.27 04:59 #932 alexey1979621: アートメディア70 ラムスの話に戻りますが、価格が指標線を越えた時にポジションを閉じることについて。この関数にエラーがあると思います if(音量[0]>1) return; チュートリアルで、ティックをカウントする代わりに、バーの出現時にポジションをオープン(クローズ)することができると読みました。可能なのでしょうか?もしそうなら、私の状況に合わせたプログラム方法のヒントを送っていただけないでしょうか。 もしかしたら、 役に立つかもしれない。 この関数は、M15に新しいバーが出現したときに真を返す bool CheckOpenM15() { static int PrevTime=0; if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false); PrevTime=iTime(NULL, PERIOD_M15,0); return(true); } Paladin80 2013.08.27 05:10 #933 ex1m:アドバイスお願いします!!! ある時刻に保留中の注文を書き込んでいる{開館時間の定義}if ((条件)==true)// { OrderSend ( OP_BUYSTOPP, parameters);// 保留の買い逆指値注文を開く OrderSend ( OP_SELLSTOP, parameters);// 保留の売り逆指値注文を開く } }.時間は正しく書いたつもりです。検出はされますが、なぜかSell StopかBuy Stopのどちらかが開き、両方が同時に開くことはないです。異なるタイプの2つの保留注文(BistopとSellstop)を同時に、かつ1つずつ開こうとしています。質問が原始的なようですが、ダミーのためにお助けください(笑)。 ここに正しくコードを貼り付けるには、まずSRCをクリックし、そこにあるコードをコピーしてください。 もし私が正しく理解していれば、ある時点でOP_BUYSTOPとOP_SELLSTOPを1 つずつ 開く必要があるのでしょうか?この時、他に保留中の注文があっても いいのでしょうか?例えば、保留中の注文がありますが、新しい注文を開く前に古い注文を削除しなければならないのでしょうか? Viktar Dzemikhau 2013.08.27 05:39 #934 artmedia70: このエラーはグラフィカルなオブジェクトに関するもので、オーダ ではありません。 そのとおりです。エラーはオブジェクトに言及していますが、このEAにはオブジェクトがありません... borilunad: ビクターさん、こんばんは。不思議なことに、保留中の注文はオブジェクトではない!?もしかしたら、すでに削除されているはずのオブジェクトが、削除されていないかもしれません。 ボリスさん、こんにちは。Expert Advisorはオブジェクトを作成しません。このエラーは、保留中の注文を 発注する関数から発生します。以下は、その機能のバージョン(テスター用)です。bool OpenPendingBuy(double lot, double price) { int g_ticket = -1; double OOP = price + i_distanceFromLastPos * pt; if (OOP > Ask) { fCheck_ValidPendingOOP(Symbol(), OP_BUYSTOP, OOP); g_ticket = OrderSend(Symbol(), OP_BUYSTOP, lot, ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE); } if (g_ticket > 0) { return (true); } else pr ("OpenPendingBuy(): Ордер послать не удалось " + GetLastError()); return (false); }注文が行われていない場合は、ブロックが発動していることを意味します。else pr ("OpenPendingBuy(): Ордер послать не удалось " + GetLastError());これは、エラーを報告するブロックです。 このロジックを理解した人はいるのだろうか? 削除済み 2013.08.27 06:05 #935 artmedia70: 答えがないので、最後に設定された注文のチケットを返す関数を紹介します。 ありがとうございました!!ちょうど私が必要としていたものです。 Boris 2013.08.27 06:13 #936 hoz: そのとおりです。エラーはオブジェクトに関するものですが、このEAにはオブジェクトがありません...。 ボリスさん、こんにちは。Expert Advisorはオブジェクトを作成しません。このエラーは、保留中の注文を発注する関数から発生します。以下は、その機能のバージョン(テスター用)です。 注文が行われていない場合、ブロックが発生したことを意味します。 これは、エラーを報告するブロックです。 このロジックを理解した人はいるのだろうか? では、エラーチェックは?何か不具合があるのでは!? Viktar Dzemikhau 2013.08.27 06:24 #937 borilunad: では、エラーチェックは?何か不具合があるのでは!? へー))ボリスのどこが不具合なんだ?全部透明なんだ...。 prは プリント機能です。そして、エラーですが、これはもう標準的な定数です。論理的に考えて、そんなことはまったく許されないのです。それでもpr 機能に疑念を抱いた方は、こちらをご覧ください。 //+-------------------------------------------------------------------------------------+ //| Распринтовка на экран | //+-------------------------------------------------------------------------------------+ void pr (string txt) { string info []; ArrayResize(info,20); string h,m,s,cm; int i; h=DoubleToStr(Hour(),0); if (StringLen(h)<2) h="0"+h; m=DoubleToStr(Minute(),0); if (StringLen(m)<2) m="0"+m; s=DoubleToStr(Seconds(),0); if (StringLen(s)<2) s="0"+s; txt=h+":"+m+":"+s+" - "+txt; for(i=20-1; i>=1; i--) info[i]=info[i-1]; info[0]=txt; for(i=20-1; i>=0; i--) if(info[i]!=""){ cm=info[i]; ObjectCreate ("txtw"+i,OBJ_LABEL,0,0,0); ObjectSet ("txtw"+i,OBJPROP_CORNER,1); ObjectSet ("txtw"+i,OBJPROP_XDISTANCE,10); ObjectSet ("txtw"+i,OBJPROP_YDISTANCE,30+15*i); ObjectSetText("txtw"+i,cm, 10, "Times New Roman", Green);}} Всеволод 2013.08.27 06:27 #938 この論理を理解できる人はいますか? ロットは正規化されていますか?よく、価格を確認する。 i_magic, pt, i_distanceFromLastPos はグローバルですか? Viktar Dzemikhau 2013.08.27 06:38 #939 splxgf: i_magic, pt, i_distanceFromLastPos はグローバルですか? そうです。i_の ついた変数は入力変数(intutという言葉から、ユーザーが変更できる...)、ptは グローバル変数でも あり、どこでも見える... 。 splxgf: この論理を理解できる人はいるのだろうか? ロットは正規化されていますか?よく、価格を確認する。 いいえ、ロットは正規化されていません。テスターでは一度も遭遇したことがない...。また、ロットとオブジェクト(エラー4200)にはどのような関係があるのでしょうか? Paladin80 2013.08.27 07:25 #940 hoz:時々(常にではありませんが)、保留中の注文を設定すると4200エラーが発生します。ドキュメントによると、このエラーは、そのオブジェクトがすでに存在していることを意味します。 ERR_OBJECT_ALREADY_EXISTS 4200 Объект уже существует このタイプの注文は、保留中の注文が送信された時点ですでにマーケットにあることが判明しているのですね。 おそらく、他のプログラムが同じ名前のグラフィカルオブジェクトを作成 し、それに対してEAが反応するのでしょう。オブジェクトの名前を変更する必要があるのかもしれません。 1...87888990919293949596979899100101...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
アートメディア70
ラムスの話に戻りますが、価格が指標線を 越えた時にポジションを閉じることについて。この関数にエラーがあると思います
if(音量[0]>1) return;
チュートリアルで、ティックをカウントする代わりに、バーの出現時にポジションをオープン(クローズ)することができると読みました。可能なのでしょうか?もしそうなら、私の状況に合わせたプログラム方法をヒントとして教えてください。
アートメディア70
ラムスの話に戻りますが、価格が指標線を越えた時にポジションを閉じることについて。この関数にエラーがあると思います
if(音量[0]>1) return;
チュートリアルで、ティックをカウントする代わりに、バーの出現時にポジションをオープン(クローズ)することができると読みました。可能なのでしょうか?もしそうなら、私の状況に合わせたプログラム方法のヒントを送っていただけないでしょうか。
もしかしたら、 役に立つかもしれない。
この関数は、M15に新しいバーが出現したときに真を返す
アドバイスお願いします!!!
ある時刻に保留中の注文を書き込んでいる
{
開館時間の定義
}
if ((条件)==true)//
{
OrderSend ( OP_BUYSTOPP, parameters);// 保留の買い逆指値注文を開く
OrderSend ( OP_SELLSTOP, parameters);// 保留の売り逆指値注文を開く
} }.
時間は正しく書いたつもりです。検出はされますが、なぜかSell StopかBuy Stopのどちらかが開き、両方が同時に開くことはないです。異なるタイプの2つの保留注文(BistopとSellstop)を同時に、かつ1つずつ開こうとしています。質問が原始的なようですが、ダミーのためにお助けください(笑)。
ここに正しくコードを貼り付けるには、まずSRCをクリックし、そこにあるコードをコピーしてください。![](https://c.mql5.com/mql4/forum/2013/08/1_15.jpg)
もし私が正しく理解していれば、ある時点でOP_BUYSTOPとOP_SELLSTOPを1 つずつ 開く必要があるのでしょうか?この時、他に保留中の注文があっても いいのでしょうか?例えば、保留中の注文がありますが、新しい注文を開く前に古い注文を削除しなければならないのでしょうか?
このエラーはグラフィカルなオブジェクトに関するもので、オーダ ではありません。
ビクターさん、こんばんは。不思議なことに、保留中の注文はオブジェクトではない!?もしかしたら、すでに削除されているはずのオブジェクトが、削除されていないかもしれません。
ボリスさん、こんにちは。Expert Advisorはオブジェクトを作成しません。このエラーは、保留中の注文を 発注する関数から発生します。以下は、その機能のバージョン(テスター用)です。
bool OpenPendingBuy(double lot, double price) { int g_ticket = -1; double OOP = price + i_distanceFromLastPos * pt; if (OOP > Ask) { fCheck_ValidPendingOOP(Symbol(), OP_BUYSTOP, OOP); g_ticket = OrderSend(Symbol(), OP_BUYSTOP, lot, ND(OOP), 30, 0, 0, NULL, i_magic, 0, CLR_NONE); } if (g_ticket > 0) { return (true); } else pr ("OpenPendingBuy(): Ордер послать не удалось " + GetLastError()); return (false); }
注文が行われていない場合は、ブロックが発動していることを意味します。
これは、エラーを報告するブロックです。
このロジックを理解した人はいるのだろうか?
答えがないので、最後に設定された注文のチケットを返す関数を紹介します。
ありがとうございました!!ちょうど私が必要としていたものです。
そのとおりです。エラーはオブジェクトに関するものですが、このEAにはオブジェクトがありません...。
ボリスさん、こんにちは。Expert Advisorはオブジェクトを作成しません。このエラーは、保留中の注文を発注する関数から発生します。以下は、その機能のバージョン(テスター用)です。
注文が行われていない場合、ブロックが発生したことを意味します。
これは、エラーを報告するブロックです。
このロジックを理解した人はいるのだろうか?
では、エラーチェックは?何か不具合があるのでは!?
へー))ボリスのどこが不具合なんだ?全部透明なんだ...。
prは プリント機能です。そして、エラーですが、これはもう標準的な定数です。論理的に考えて、そんなことはまったく許されないのです。それでもpr 機能に疑念を抱いた方は、こちらをご覧ください。
ロットは正規化されていますか?よく、価格を確認する。
i_magic, pt, i_distanceFromLastPos はグローバルですか?
i_magic, pt, i_distanceFromLastPos はグローバルですか?
そうです。i_の ついた変数は入力変数(intutという言葉から、ユーザーが変更できる...)、ptは グローバル変数でも あり、どこでも見える... 。
ロットは正規化されていますか?よく、価格を確認する。
いいえ、ロットは正規化されていません。テスターでは一度も遭遇したことがない...。また、ロットとオブジェクト(エラー4200)にはどのような関係があるのでしょうか?
時々(常にではありませんが)、保留中の注文を設定すると4200エラーが発生します。ドキュメントによると、このエラーは、そのオブジェクトがすでに存在していることを意味します。
このタイプの注文は、保留中の注文が送信された時点ですでにマーケットにあることが判明しているのですね。