エラー、バグ、質問 - ページ 1935 1...192819291930193119321933193419351936193719381939194019411942...3185 新しいコメント fxsaber 2017.07.20 23:14 #19341 Aleksey Vyazmikin:だから、取引機能のことではないと思うのですが......。 そこのブランチは、誰でも再現できる建設的な文言の例です。 Aleksey Vyazmikin 2017.07.20 23:28 #19342 fxsaber: そこには、誰でも再現できる建設的な文言の例がある。わかりました。コードを掲載したいのですが、まだお金を払っていない取引機能 用のクラスを使っているので......。レンダリング時に、最大速度で1バーあたり数秒の速度低下が見られますが、何か心当たりはありますか?ウイルス対策チェックなし、SSDドライブ、空き容量あり...。 Renat Fatkhullin 2017.07.20 23:31 #19343 Aleksey Vyazmikin:MT4からMT5へEAを書き換える話は同じで、分単位のコントロールポイントによるテストです。MT52017.07.20 20:01:38.059 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated.環境は0:00:00.078に同期した。テストは0:03:52.707でパス しました(ティックの前処理0:00:00.031を含む)。エムティーフォー2017.07.20 20:02:32.696 RUBRUR,M1: 225314ティックイベント(35701バー、231783バーステート)を0:00:04.259で処理(総時間0:00:11.310)しました。 また、MT5の賞賛されるスピードはどこにあるのでしょうか? 両方のExpert Advisorのコードを表示してください。ネイティブのMQL5ではなく、手抜きのMQL4エミュレータを導入したんだろ? Aleksey Vyazmikin 2017.07.21 00:21 #19344 Renat Fatkhullin: 両方のEAのコードが表示されていますね。ネイティブのMQL5ではなく、手抜きのMQL4エミュレータがあるんですよね?のため、まだコードを表示する準備ができていません。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム バグ、バグ、質問 アレクセイ・ヴャズミキン さん 2017.07.20 23:28 わかりました。コードを掲載したいのですが、まだお金を払っていない取引機能 用のクラスを使っているので......。しかし、MT5からプロファイリングの結果を表示する準備ができている - 私はトレーディング機能は問題外であると理解しています。 OHLC環境では、以下の機能を使用しています。 //------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; ArraySetAsSeries(Open,true); int copied=CopyOpen(Symbol(),0,0,Bars(Symbol(),0),Open); if(copied>0 && index<copied) open=Open[index]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; ArraySetAsSeries(Low,true); int copied=CopyLow(Symbol(),0,0,Bars(Symbol(),0),Low); if(copied>0 && index<copied) low=Low[index]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; ArraySetAsSeries(High,true); int copied=CopyHigh(Symbol(),0,0,Bars(Symbol(),0),High); if(copied>0 && index<copied) high=High[index]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,0,Bars(Symbol(),0),Close); if(copied>0 && index<copied) close=Close[index]; return(close); } もしかして、私のやり方が悪いのか? Vitaly Muzichenko 2017.07.21 00:31 #19345 Aleksey Vyazmikin:のため、まだコードを表示する準備ができていません。しかし、私はMT5からのプロファイリング結果を示す準備ができています - トレーディング機能は問題外であると理解しています。OHLC環境では、以下の機能を使用しています。 もしかして、私のやり方が悪いのでしょうか?double iOpen(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyOpen(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iClose(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyClose(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iHigh(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyHigh(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } double iLow(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[]; if(CopyLow(symbol,tf, index, 1, Arr)>0) return(Arr[0]); else return(-1); } Vitaly Muzichenko 2017.07.21 00:36 #19346 ストーリーから利用可能なすべてのバーをコピーしますが、本当に必要なのは、探している1つのインデックスだけ です。CopyOpen(Symbol(),0,index,Bars(Symbol(),0)1,Open); Aleksey Vyazmikin 2017.07.21 00:50 #19347 Vitaly Muzichenko:ストーリーから利用可能なすべてのバーをコピーしますが、本当に必要なのは、探している1つのインデックスだけ です。あなたのレシピで変更したら、EAが注文を開けなくなりました...。もしかして、また失敗しちゃった?//------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; ArraySetAsSeries(Open,true); int copied=CopyOpen(Symbol(),0,index,1,Open); if(copied>0 && index<copied) open=Open[index]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; ArraySetAsSeries(Low,true); int copied=CopyLow(Symbol(),0,index,1,Low); if(copied>0 && index<copied) low=Low[index]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; ArraySetAsSeries(High,true); int copied=CopyHigh(Symbol(),0,index,1,High); if(copied>0 && index<copied) high=High[index]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,index,1,Close); if(copied>0 && index<copied) close=Close[index]; return(close); } //+------------------------------------------------------------------+ //| Получим IOpen для заданного номера бара | //+------------------------------------------------------------------+ double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double open=0; ArraySetAsSeries(OpenI,true); int copied=CopyOpen(symbol,timeframe,index,1,OpenI); if(copied>0 && index<copied) open=OpenI[index]; return(open); } //+------------------------------------------------------------------+ //| Получим iLow для заданного номера бара | //+------------------------------------------------------------------+ double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double low=0; ArraySetAsSeries(LowI,true); int copied=CopyLow(symbol,timeframe,index,1,LowI); if(copied>0 && index<copied) low=LowI[index]; return(low); } //+------------------------------------------------------------------+ //| Получим iHigh для заданного номера бара | //+------------------------------------------------------------------+ double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double high=0; ArraySetAsSeries(HighI,true); int copied=CopyHigh(symbol,timeframe,index,1,HighI); if(copied>0 && index<copied) high=HighI[index]; return(high); } //+------------------------------------------------------------------+ //| Получим iClose для заданного номера бара | //+------------------------------------------------------------------+ double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double close=0; ArraySetAsSeries(CloseI,true); int copied=CopyHigh(symbol,timeframe,index,1,CloseI); if(copied>0 && index<copied) close=CloseI[index]; return(close); } Vitaly Muzichenko 2017.07.21 00:56 #19348 Aleksey Vyazmikin:レシピを変更したら、EAが注文を開けなくなった...。もしかして、また失敗しちゃった?double Close(int index) { double close=0; ArraySetAsSeries(Close,true); int copied=CopyHigh(Symbol(),0,index,1,Close); if(copied>0 && index<copied) close=Close[index]; return(close); }終値 != 高値PS.ここに書いて ください、それはトピックではありませんモデレーターの方々には、この投稿をゴミ箱に捨てずに、適切なトピックに移動するようお願いします。 Вопросы от начинающих MQL5 MT5 MetaTrader 5 2012.03.12www.mql5.com Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000... Aleksey Vyazmikin 2017.07.21 01:20 #19349 Vitaly Muzichenko:終値 != 高値PS.ここに 投稿してください、このトピックは適切ではありません。モデレーターの方々には、このトピックを散らかすのではなく、適切なトピックに投稿を移動していただくようお願いしますありがとうございます - 修正しました。コードは以下の通りです。//------------------------------------------------------------------- //==MQL4toMQL5 //+------------------------------------------------------------------+ //| Получим Open для заданного номера бара | //+------------------------------------------------------------------+ double Open(int index) { double open=0; int copied=CopyOpen(Symbol(),0,index,1,Open); if(copied>0) open=Open[0]; return(open); } //+------------------------------------------------------------------+ //| Получим Low для заданного номера бара | //+------------------------------------------------------------------+ double Low(int index) { double low=0; int copied=CopyLow(Symbol(),0,index,1,Low); if(copied>0) low=Low[0]; return(low); } //+------------------------------------------------------------------+ //| Получим High для заданного номера бара | //+------------------------------------------------------------------+ double High(int index) { double high=0; int copied=CopyHigh(Symbol(),0,index,1,High); if(copied>0) high=High[0]; return(high); } //+------------------------------------------------------------------+ //| Получим Close для заданного номера бара | //+------------------------------------------------------------------+ double Close(int index) { double close=0; int copied=CopyClose(Symbol(),0,index,1,Close); if(copied>0) close=Close[0]; return(close); } //+------------------------------------------------------------------+ //| Получим IOpen для заданного номера бара | //+------------------------------------------------------------------+ double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double open=0; int copied=CopyOpen(symbol,timeframe,index,1,OpenI); if(copied>0) open=OpenI[0]; return(open); } //+------------------------------------------------------------------+ //| Получим iLow для заданного номера бара | //+------------------------------------------------------------------+ double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double low=0; int copied=CopyLow(symbol,timeframe,index,1,LowI); if(copied>0) low=LowI[0]; return(low); } //+------------------------------------------------------------------+ //| Получим iHigh для заданного номера бара | //+------------------------------------------------------------------+ double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double high=0; int copied=CopyHigh(symbol,timeframe,index,1,HighI); if(copied>0) high=HighI[0]; return(high); } //+------------------------------------------------------------------+ //| Получим iClose для заданного номера бара | //+------------------------------------------------------------------+ double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index) { double close=0; int copied=CopyClose(symbol,timeframe,index,1,CloseI); if(copied>0) close=CloseI[0]; return(close); }テスターの時間が長くなったので、待ちくたびれました。) Vladimir Pastushak 2017.07.21 08:04 #19350 当月の履歴で取引されたロットをカウントしています。 double lots=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if(TimeMonth(OrderCloseTime())==TimeMonth(TimeCurrent())) if(OrderType()<2) lots+=OrderLots();端末の履歴に指定した期間の注文、例えば過去3日間の注文を表示すると、OrdersHistoryTotal()は過去3 日間しか表示しないことが判明しました。OrdersHistoryTotal() は履歴全体の注文を見るべきですが、日付や期間によるフィルタリングは開発者が 行うべきものです。そうでないと、ユーザーによる履歴の不正な隠蔽が問題になることがあります. 1...192819291930193119321933193419351936193719381939194019411942...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
だから、取引機能のことではないと思うのですが......。
そこには、誰でも再現できる建設的な文言の例がある。
わかりました。コードを掲載したいのですが、まだお金を払っていない取引機能 用のクラスを使っているので......。
レンダリング時に、最大速度で1バーあたり数秒の速度低下が見られますが、何か心当たりはありますか?
ウイルス対策チェックなし、SSDドライブ、空き容量あり...。
MT4からMT5へEAを書き換える
話は同じで、分単位のコントロールポイントによるテストです。
MT5
2017.07.20 20:01:38.059 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated.環境は0:00:00.078に同期した。テストは0:03:52.707でパス しました(ティックの前処理0:00:00.031を含む)。
エムティーフォー
2017.07.20 20:02:32.696 RUBRUR,M1: 225314ティックイベント(35701バー、231783バーステート)を0:00:04.259で処理(総時間0:00:11.310)しました。
両方のEAのコードが表示されていますね。ネイティブのMQL5ではなく、手抜きのMQL4エミュレータがあるんですよね?
のため、まだコードを表示する準備ができていません。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
バグ、バグ、質問
アレクセイ・ヴャズミキン さん 2017.07.20 23:28
わかりました。コードを掲載したいのですが、まだお金を払っていない取引機能 用のクラスを使っているので......。
しかし、MT5からプロファイリングの結果を表示する準備ができている - 私はトレーディング機能は問題外であると理解しています。
もしかして、私のやり方が悪いのか?OHLC環境では、以下の機能を使用しています。
のため、まだコードを表示する準備ができていません。
しかし、私はMT5からのプロファイリング結果を示す準備ができています - トレーディング機能は問題外であると理解しています。
OHLC環境では、以下の機能を使用しています。
もしかして、私のやり方が悪いのでしょうか?ストーリーから利用可能なすべてのバーをコピーしますが、本当に必要なのは、探している1つのインデックスだけ です。
ストーリーから利用可能なすべてのバーをコピーしますが、本当に必要なのは、探している1つのインデックスだけ です。
あなたのレシピで変更したら、EAが注文を開けなくなりました...。もしかして、また失敗しちゃった?
レシピを変更したら、EAが注文を開けなくなった...。もしかして、また失敗しちゃった?
終値 != 高値
PS.ここに書いて ください、それはトピックではありません
モデレーターの方々には、この投稿をゴミ箱に捨てずに、適切なトピックに移動するようお願いします。
終値 != 高値
PS.ここに 投稿してください、このトピックは適切ではありません。
モデレーターの方々には、このトピックを散らかすのではなく、適切なトピックに投稿を移動していただくようお願いします
ありがとうございます - 修正しました。
コードは以下の通りです。
テスターの時間が長くなったので、待ちくたびれました。)
当月の履歴で取引されたロットをカウントしています。
端末の履歴に指定した期間の注文、例えば過去3日間の注文を表示すると、OrdersHistoryTotal()は過去3 日間しか表示しないことが判明しました。
OrdersHistoryTotal() は履歴全体の注文を見るべきですが、日付や期間によるフィルタリングは開発者が 行うべきものです。
そうでないと、ユーザーによる履歴の不正な隠蔽が問題になることがあります.