どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 322 1...315316317318319320321322323324325326327328329...1178 新しいコメント tommy27 2013.12.08 10:35 #3211 Osmaを例にとりましたが、Strategy Testerではチャートが動いているときに現在を表示し、チャートに置いただけでは何も表示されません。 //---- indicator settings #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Silver #property indicator_width1 2 //---- indicator parameters extern int Per=12; extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- indicator buffers double OsmaBuffer1[]; double OsmaBuffer[]; double MacdBuffer[]; double SignalBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 2 additional buffers are used for counting. IndicatorBuffers(4); //---- drawing settings SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexDrawBegin(0,SignalSMA); IndicatorDigits(Digits+2); //---- 3 indicator buffers mapping SetIndexBuffer(0,OsmaBuffer1); SetIndexBuffer(1,OsmaBuffer); SetIndexBuffer(2,MacdBuffer); SetIndexBuffer(3,SignalBuffer); //---- name for DataWindow and indicator subwindow label IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Average of Oscillator | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st additional buffer for(int i=0; i<limit; i++) MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i); //---- signal line counted in the 2-nd additional buffer for(i=0; i<limit; i++) SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i); //---- main loop for(i=0; i<limit; i++) OsmaBuffer[i]=MacdBuffer[i]-SignalBuffer[i]; //---- done for(i=0; i<limit; i++) { for(int b=0; b<Per; b++) { OsmaBuffer1[i] =OsmaBuffer[ ArrayMaximum(OsmaBuffer,Per,b)]; } } return(0); } Всё разобрался, перемудрил просто))), достаточно этого: for(i=0; i<limit; i++) { OsmaBuffer1[i] = OsmaBuffer[ ArrayMaximum(OsmaBuffer,Per,i)]; } Mikhail Kozhemyako 2013.12.08 11:59 #3212 borilunad: それ、わかります!しかし、この変数(「指定スプレッド」)をどのようにプログラムすればよいのでしょうか。確かに、Spreadという変数を作って、テスターでスプレッドを変更するたびにそれを変更することはできます。Spread(TestGenerator)とか、何か関数があるとか、どうにかしてそういう関数を作れないか、とか言って!(笑)А? テスト時のスプレッドは決まっています。 が、多くのDCでは可変です。必要であれば、テスターで考慮してください。一般的に、Expert Advisors は最も好ましくない条件でテストします。I.e.最大スプレッド、注文開始の遅延の可能性など。 Boris 2013.12.08 12:47 #3213 Sepulca: テスト時には、所定のスプレッドがあります。 が、多くのDCでは可変です。必要であれば、テスターで考慮してください。一般的に、Expert Advisorは最も不利な条件でテストします。I.e.最大スプレッド、注文開始の遅延の可能性など。 何でも理解して、何でもやる!ただ、テスターではAskがよく歪むので、プログで設定したスプレッドを反映させ、Bid+spreadで探したいと思っています。テスターでMarketInfoが動作 しないブランチを参照してください。そうすれば、何が問題なのかがわかるはずですそこで聞いても、誰もいない!したがって、ここに移動し、そこに反応し、あなたや他の人があなたに感謝するために Андрей Григорьев 2013.12.08 12:57 #3214 同僚!既成の関数をEAに組み込むのを手伝ってください。 Андрей Григорьев 2013.12.08 13:04 #3215 以下はその機能です。 bool isFlagHistoryPos(int mn=-1){ フラグを立てる。 datetime t; int gd = MarketInfo(Symbol(),MODE_DIGITS)。 int i, j=-1, k=OrdersHistoryTotal()です。 for (i=0; i<k; i++) {. if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){ if (OrderSymbol()==Symbol()){ if (OrderType()==OP_BUY || OrderType()==OP_SELL) {。 if (mn<0 || OrderMagicNumber()==mn) {. if (t<OrderCloseTime()){ t=OrderCloseTime()。 j=iとする。 } } } } } } if(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY)){ double ocp=NormalizeDouble(OrderClosePrice(),gd); double otp=NormalizeDouble(OrderTakeProfit(),gd); if(MathAbs(ocp-otp)/Point<=TPpoint) return(true)とする。 } return(false)です。 Expert Advisor本体を添付します。 /* Vininによるデコンパイル */ Any rookie question, so [アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. KimIVの便利な機能 Artyom Trishkin 2013.12.08 13:16 #3216 borilunad: はい、すべて理解し、実行していますただ、テスターではAskがよく歪むので、設定したスプレッドをプログに反映させ、Bid+spreadで探したいと思っています。テスターでMarketInfoが動作 しないブランチを参照してください。そうすれば、何が問題なのかがわかるはずですそこで聞いても、誰もいない!したがって、ここに移動し、そこに反応し、あなたや他の人があなたに感謝するために クソ ボリス以前にも書きました。エキスパートアドバイザーでフローティングスプレッドの真似をすることができるんだ。フローティングスプレッドの範囲内のランダムな数値をビッドに追加し、ストップオーダーで開くことを妨げるものは何ですか?そして、ストップオーダーではなく、値で閉じる。静止画のスプレッドを大きく設定するよりも複雑ですが、どうしても必要な場合は、それを行うことができます。同時にテスターで最小のスプレッドを設定します。 ただ、それは...一筋縄ではいかない Boris 2013.12.08 13:25 #3217 artmedia70: クソ ボリス以前にも書きました。さて、EAでフローティングスプレッドのシミュレーションをしましょう。浮動スプレッド範囲のランダムな数値をビッドに追加してストップオーダーで開くのはどうなんだろう。そして、ストップオーダーではなく、値で閉じる。静止画のスプレッドを大きく設定するよりも複雑ですが、どうしても必要な場合は、それを行うことができます。同時に、テスターで、最小スプレッドを設定する。 これはまさに ...考え方です。 アルテムさん、ありがとうございます!いい意味で賢くなっていますね。そうします! Artem mezhelovsky 2013.12.08 14:16 #3218 Help with the problem, please) 交差波で動作するExpert Advisorを書いた のですが、テストしようとするとターミナルがビープ音を出して何もテストしません(コンパイラコードは気に入っています。 せめて何か表示するようにするにはどうすればいいでしょうか? #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- indicator parameters extern int RPeriod=13; extern int RPrice=PRICE_CLOSE; extern int RMethod=MODE_EMA; //для желтой extern int YPeriod=30; extern int YPrice=PRICE_CLOSE; extern int YMethod=MODE_EMA; extern int Magic=17051994; //профит и лось extern int TakeProfit=150; extern int StopLoss=30; extern double lot=0.1; double movingred,movingellow,SL,TP,movingred2,movingellow2; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int kolpos=0,pos; movingred=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,1); movingellow=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,1); movingred2=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,2); movingellow2=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,2); for(pos=0;pos <OrdersTotal();pos++)//считаю ордера чтобы советник не трогал в ручную выставленные ордера { OrderSelect(pos,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ) { kolpos++; } } if (kolpos==0) { //условвие для покупок продаж if(movingred2>movingellow2 && movingred<movingellow && Volume[0]<5)//продаем { OrderSend(Symbol(),OP_SELL,lot,Bid,10,Bid+StopLoss*Point,Bid-TakeProfit*Point,NULL,Magic,0,Green); } if(movingred2<movingellow2 && movingred>movingellow && Volume[0]<5)//покупаем { OrderSend(Symbol(),OP_BUY,lot,Ask,10,Ask-StopLoss*Point,Ask-TakeProfit*Point,NULL,Magic,0,Red); } } return(0); } TarasBY 2013.12.08 14:42 #3219 LBatters: Help with the problem, please) 交差波で動作するExpert Advisorを書いたのですが、テストしようとするとターミナルがビープ音を出して何もテストしません(コンパイラコードは気に入っています。 せめて何か表示するようにするにはどうすればいいでしょうか? 自分が書いたものを見たことがあるのか!? 何か、「ここが問題なんだ」と思うんです。 movingred=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,1); movingellow=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,1); movingred2=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,2); movingellow2=iMA(Symbol(),0,RPeriod,0,RMethod,RPrice,2); Vitalie Postolache 2013.12.08 14:44 #3220 LBatters: 問題で助けてください)私は手を振って交差に動作するエキスパート-アドバイザーを書いたが、私はそれをテストしようとすると、端末がビープ音と何もテストしません(コンパイラのコードが好きです。 彼は少なくとも何かを表示するようにそれを作るにはどうすればよいですか? //считаю ордера чтобы советник не трогал в ручную выставленные ордера どこを触るんだろう?はい、そしてそれは、マジシャン、マジシャンなしのマニュアルをチェックするのに十分です。 しかも、上に書いたように、マッシュが重ならないように...。 1...315316317318319320321322323324325326327328329...1178 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Osmaを例にとりましたが、Strategy Testerではチャートが動いているときに現在を表示し、チャートに置いただけでは何も表示されません。
それ、わかります!しかし、この変数(「指定スプレッド」)をどのようにプログラムすればよいのでしょうか。確かに、Spreadという変数を作って、テスターでスプレッドを変更するたびにそれを変更することはできます。Spread(TestGenerator)とか、何か関数があるとか、どうにかしてそういう関数を作れないか、とか言って!(笑)А?
テスト時のスプレッドは決まっています。
が、多くのDCでは可変です。必要であれば、テスターで考慮してください。一般的に、Expert Advisors は最も好ましくない条件でテストします。I.e.最大スプレッド、注文開始の遅延の可能性など。
テスト時には、所定のスプレッドがあります。
が、多くのDCでは可変です。必要であれば、テスターで考慮してください。一般的に、Expert Advisorは最も不利な条件でテストします。I.e.最大スプレッド、注文開始の遅延の可能性など。
以下はその機能です。
bool isFlagHistoryPos(int mn=-1){ フラグを立てる。
datetime t;
int gd = MarketInfo(Symbol(),MODE_DIGITS)。
int i, j=-1, k=OrdersHistoryTotal()です。
for (i=0; i<k; i++) {.
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if (OrderSymbol()==Symbol()){
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {。
if (mn<0 || OrderMagicNumber()==mn) {.
if (t<OrderCloseTime()){
t=OrderCloseTime()。
j=iとする。
}
}
}
}
}
}
if(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY)){
double ocp=NormalizeDouble(OrderClosePrice(),gd);
double otp=NormalizeDouble(OrderTakeProfit(),gd);
if(MathAbs(ocp-otp)/Point<=TPpoint) return(true)とする。
}
return(false)です。
Expert Advisor本体を添付します。
/* Vininによるデコンパイル */
はい、すべて理解し、実行していますただ、テスターではAskがよく歪むので、設定したスプレッドをプログに反映させ、Bid+spreadで探したいと思っています。テスターでMarketInfoが動作 しないブランチを参照してください。そうすれば、何が問題なのかがわかるはずですそこで聞いても、誰もいない!したがって、ここに移動し、そこに反応し、あなたや他の人があなたに感謝するために
クソ ボリス以前にも書きました。エキスパートアドバイザーでフローティングスプレッドの真似をすることができるんだ。フローティングスプレッドの範囲内のランダムな数値をビッドに追加し、ストップオーダーで開くことを妨げるものは何ですか?そして、ストップオーダーではなく、値で閉じる。静止画のスプレッドを大きく設定するよりも複雑ですが、どうしても必要な場合は、それを行うことができます。同時にテスターで最小のスプレッドを設定します。
ただ、それは...一筋縄ではいかない
クソ ボリス以前にも書きました。さて、EAでフローティングスプレッドのシミュレーションをしましょう。浮動スプレッド範囲のランダムな数値をビッドに追加してストップオーダーで開くのはどうなんだろう。そして、ストップオーダーではなく、値で閉じる。静止画のスプレッドを大きく設定するよりも複雑ですが、どうしても必要な場合は、それを行うことができます。同時に、テスターで、最小スプレッドを設定する。
これはまさに ...考え方です。
Help with the problem, please) 交差波で動作するExpert Advisorを書いた のですが、テストしようとするとターミナルがビープ音を出して何もテストしません(コンパイラコードは気に入っています。 せめて何か表示するようにするにはどうすればいいでしょうか?
Help with the problem, please) 交差波で動作するExpert Advisorを書いたのですが、テストしようとするとターミナルがビープ音を出して何もテストしません(コンパイラコードは気に入っています。 せめて何か表示するようにするにはどうすればいいでしょうか?
何か、「ここが問題なんだ」と思うんです。
問題で助けてください)私は手を振って交差に動作するエキスパート-アドバイザーを書いたが、私はそれをテストしようとすると、端末がビープ音と何もテストしません(コンパイラのコードが好きです。 彼は少なくとも何かを表示するようにそれを作るにはどうすればよいですか?
//считаю ордера чтобы советник не трогал в ручную выставленные ордераどこを触るんだろう?はい、そしてそれは、マジシャン、マジシャンなしのマニュアルをチェックするのに十分です。
しかも、上に書いたように、マッシュが重ならないように...。