エラー130を地獄に落とす - ページ 4 1234 新しいコメント Bogdan Caramalac 2009.08.05 23:24 #31 k... 明日、コードを投稿します... これはバックテスターで 起こることだと言うのを忘れていました...前方でどうなるかは分かりませんが、確かにこれも見たくありませんね。 Bogdan Caramalac 2009.08.06 07:37 #32 int PriceOpenMode(int op) { if ( op==OP_BUY) return(MODE_ASK); if ( op==OP_SELL) return(MODE_BID); return(-1); } int PriceCloseMode(int op) { if ( op==OP_BUY) return(MODE_BID); if ( op==OP_SELL) return(MODE_ASK); return(-1); } int ReliableOrderSend(string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit, string comment="",int magic=0,datetime expiration=0,color arrow_color=CLR_NONE,int MaxPasses=0) { int Gle= ERR_TRADE_CONTEXT_BUSY; int passes=0; int res=-1; while ( Gle== ERR_TRADE_CONTEXT_BUSY|| Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES) { if ( Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES|| passes==0) { if ( passes!=0) RefreshRates(); if ( price==0.0) //if (passes!=0||price==0) price=MarketInfo( symbol, PriceOpenMode( cmd)); }//if (Gle==ERR_REQUOTE) res=OrderSend( symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color); Gle=GetLastError(); if ( Gle!= ERR_NO_ERROR) Print("ReliableOrderSend error : ", Gle); passes= passes+1; if ( MaxPasses!=0) { if ( passes>= MaxPasses) break; } if ( Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES) { price=0.0; } }//while (Gle==ERR_TRADE_CONTEXT_BUSY||Gle==ERR_REQUOTE) return( res); } bool ReliableOrderClose(int ticket, double lots, double price, int slippage, color Color=CLR_NONE,int MaxPasses=0) { int Gle= ERR_TRADE_CONTEXT_BUSY; int passes=0; bool res; int otype; double olots; string osymbol; res=OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES); osymbol=OrderSymbol(); otype=OrderType(); olots=OrderLots(); if ( lots==0) lots= olots; if ( res== True) { while ( Gle== ERR_TRADE_CONTEXT_BUSY|| Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES) { if ( Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES|| passes==0) { if ( passes!=0) RefreshRates(); if ( price==0.0) //if (passes!=0||price==0) price=MarketInfo( osymbol, PriceCloseMode( otype)); }//if (Gle==ERR_REQUOTE) res=OrderClose( ticket, lots, price, slippage, Color); Gle=GetLastError(); if ( Gle!= ERR_NO_ERROR) Print("ReliableOrderClose error : ", Gle); passes= passes+1; if ( MaxPasses!=0) { if ( passes>= MaxPasses) break; } if ( Gle== ERR_REQUOTE|| Gle== ERR_INVALID_PRICE|| Gle== ERR_PRICE_CHANGED|| Gle== ERR_OFF_QUOTES) { price=0.0; } }//while (Gle==ERR_TRADE_CONTEXT_BUSY||Gle==ERR_REQUOTE) } return( res); } Bogdan Caramalac 2009.08.06 07:37 #33 bool ReliableModifyStopLoss(int ticket,double NewStopLoss,int MarkColor=CLR_NONE) { int ot, oti; datetime oex; string os; double oop, otp, point; bool res=false; bool selected=false; double fixed; selected=OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES); if ( selected== True) { double ns=NormalizeDouble( NewStopLoss,MarketInfo(OrderSymbol(),MODE_DIGITS)); ot=OrderType(); oti=OrderTicket(); oop=OrderOpenPrice(); otp=OrderTakeProfit(); oex=OrderExpiration(); os=OrderSymbol(); point=MarketInfo( os,MODE_POINT); if ( ot==OP_BUY|| ot==OP_BUYSTOP|| ot==OP_BUYLIMIT) { fixed=MarketInfo( os,MODE_ASK)-MarketInfo( os,MODE_STOPLEVEL)* point; if ( ns> fixed&& ns<=MarketInfo( os,MODE_ASK)) ns= fixed; while(true) { res=OrderModify( oti, oop, ns, otp, oex, MarkColor); if ( res== True) break; else { if (GetLastError()== ERR_INVALID_STOPS) ns= ns- point; else break; } RefreshRates(); }//while(true) }//if (ot==OP_BUY||ot==OP_BUYSTOP||ot==OP_BUYLIMIT) if ( ot==OP_SELL|| ot==OP_SELLSTOP|| ot==OP_SELLLIMIT) { fixed=MarketInfo( os,MODE_BID)+MarketInfo( os,MODE_STOPLEVEL)* point; if ( ns< fixed&& ns>=MarketInfo( os,MODE_BID)) ns= fixed; while(true) { res=OrderModify( oti, oop, ns, otp, oex, MarkColor); if ( res== True) break; else { if (GetLastError()== ERR_INVALID_STOPS) ns= ns+ point; else break; } RefreshRates(); }//while(true) }//if (ot==OP_BUY||ot==OP_BUYSTOP||ot==OP_BUYLIMIT) } return( res); } bool ReliableModifyTakeProfit(int ticket,double NewTakeProfit,int MarkColor=CLR_NONE) { int ot, oti; datetime oex; string os; double oop, osl, point; bool res=false; bool selected=false; double fixed; selected=OrderSelect( ticket, SELECT_BY_TICKET, MODE_TRADES); if ( selected== True) { double nt=NormalizeDouble( NewTakeProfit,MarketInfo(OrderSymbol(),MODE_DIGITS)); ot=OrderType(); oti=OrderTicket(); oop=OrderOpenPrice(); osl=OrderStopLoss(); oex=OrderExpiration(); os=OrderSymbol(); point=MarketInfo( os,MODE_POINT); if ( ot==OP_BUY|| ot==OP_BUYSTOP|| ot==OP_BUYLIMIT) { fixed=MarketInfo( os,MODE_ASK)+MarketInfo( os,MODE_STOPLEVEL)* point; if ( nt< fixed&& nt>=MarketInfo( os,MODE_ASK)) nt= fixed; while(true) { res=OrderModify( oti, oop, osl, nt, oex, MarkColor); if ( res== True) break; else { if (GetLastError()== ERR_INVALID_STOPS) nt= nt+ point; else break; } RefreshRates(); }//while(true) }//if (ot==OP_BUY||ot==OP_BUYSTOP||ot==OP_BUYLIMIT) if ( ot==OP_SELL|| ot==OP_SELLSTOP|| ot==OP_SELLLIMIT) { fixed=MarketInfo( os,MODE_BID)-MarketInfo( os,MODE_STOPLEVEL)* point; if ( nt> fixed&& nt<=MarketInfo( os,MODE_BID)) nt= fixed; while(true) { res=OrderModify( oti, oop, osl, nt, oex, MarkColor); if ( res== True) break; else { if (GetLastError()== ERR_INVALID_STOPS) nt= nt- point; else break; } RefreshRates(); }//while(true) }//if (ot==OP_BUY||ot==OP_BUYSTOP||ot==OP_BUYLIMIT) } return( res); } int ReliableOrderPlace(string symbol,int cmd,double volume,double price,int slippage,int stoploss,int takeprofit, string comment="",int magic=0,datetime expiration=0,color arrow_color=CLR_NONE,int MaxPasses=0) { int res, ticket; double oop, tkp, osl; res= ReliableOrderSend( symbol, cmd, volume, price, slippage,0,0, comment, magic, expiration, arrow_color, MaxPasses); if ( res!=-1) { ticket=OrderSelect( res, SELECT_BY_TICKET, MODE_TRADES); oop=OrderOpenPrice(); if ( takeprofit!=0) { if ( cmd==OP_BUY|| cmd==OP_BUYLIMIT|| cmd==OP_BUYSTOP) tkp= oop+ takeprofit*MarketInfo( symbol,MODE_POINT); if ( cmd==OP_SELL|| cmd==OP_SELLLIMIT|| cmd==OP_SELLSTOP) tkp= oop- takeprofit*MarketInfo( symbol,MODE_POINT); ReliableModifyTakeProfit( res, tkp); } } if ( res!=-1) { ticket=OrderSelect( res, SELECT_BY_TICKET, MODE_TRADES); oop=OrderOpenPrice(); if ( stoploss!=0) { if ( cmd==OP_BUY|| cmd==OP_BUYLIMIT|| cmd==OP_BUYSTOP) osl= oop- stoploss*MarketInfo( symbol,MODE_POINT); if ( cmd==OP_SELL|| cmd==OP_SELLLIMIT|| cmd==OP_SELLSTOP) osl= oop+ stoploss*MarketInfo( symbol,MODE_POINT); ReliableModifyStopLoss( res, osl); } } return( res); } Bogdan Caramalac 2009.08.06 09:57 #34 どう思う? Patrick 2009.08.06 16:35 #35 Roger wrote>> 本当にそろそろコード全体を見せるべきでしょう。もし躊躇するならば、PMを使うことができます。 TPがBidより低いようですが TP < Bid の問題を修正した後、私のストップレベルがこのブローカーでは0であることが判明しました。したがって、注文に SL や TP を付けることができず、注文を出した後すぐに注文修正を使用しなければなりませんでした。 ありがとうございました。 BB Bogdan Caramalac 2009.08.06 18:21 #36 私はそれを生成する実際の行を投稿していないので、あなたはTPセットを参照してください、それは。 tsel= ReliableOrderSend(Symbol(), WhatOperation(OP_SELL, GetPylonRoot( execpyl,MODE_HIGH)+(2* Half)*( BuildLevels+ execlev)), LotSize, HighBase+(2* Half)*( BuildLevels+ execlev), Slippage,0,0,"", MakeMagic( execpyl, execlev+1, execarea) ); ご覧のように、SLもTPもゼロに設定されています... Bogdan Caramalac 2009.08.06 18:24 #37 WOAA...私のせいだ--価格が同じ式ではない 後ほど編集します。 修正しても問題は解決しません...同じ現象は発生しませんが、まだ起こります。 Bogdan Caramalac 2009.08.06 22:40 #38 解決済み...STOPLEVELは、SLやTPがないときでも重要です... 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
k... 明日、コードを投稿します...
これはバックテスターで 起こることだと言うのを忘れていました...前方でどうなるかは分かりませんが、確かにこれも見たくありませんね。
本当にそろそろコード全体を見せるべきでしょう。もし躊躇するならば、PMを使うことができます。
TPがBidより低いようですが
TP < Bid の問題を修正した後、私のストップレベルがこのブローカーでは0であることが判明しました。したがって、注文に SL や TP を付けることができず、注文を出した後すぐに注文修正を使用しなければなりませんでした。
ありがとうございました。
BB
私はそれを生成する実際の行を投稿していないので、あなたはTPセットを参照してください、それは。
ご覧のように、SLもTPもゼロに設定されています...WOAA...私のせいだ--価格が同じ式ではない
後ほど編集します。
修正しても問題は解決しません...同じ現象は発生しませんが、まだ起こります。