[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 537 1...530531532533534535536537538539540541542543544...652 新しいコメント Vadim Zhunko 2012.01.28 15:02 #5361 chief2000: ここで質問です。 カスタムインジケータのコードから、そのインジケータが動作しているウィンドウが現在アクティブになっているかどうかを知ることはできますか? 例えば、同じインディケータが2つのウィンドウで動作している場合、チャートがアクティブになっているウィンドウでのみ動作し、2番目のウィンドウでは非アクティブになるようにする必要があります。 ありがとうございました。 またしても図書館が 役に立ちました :-) Oleg 2012.01.28 15:27 #5362 Zhunko: 今回も図書館が 役に立ちました :-) ありがとうございました。 削除済み 2012.01.28 15:55 #5363 こんばんは!こちらのロボットのロールオーバーを早速始めてみたのですが、いきなりエラーなしのプロカンでも、なんと、いきなり2つの注文を同時に開いてくれます!!!!!。 つまり、1回目と2回目のティックで、1回ずつ注文するのです。以下、そのコードを貼り付けます。BUY変数は、すでにオープンされている買い注文の数で、もしそれがゼロ以上であれば、1つでも注文が存在すれば、オープンしてはいけないということです。//+------------------------------------------------------------------+ //| антиб.mq4 | //| Copyright © 2012, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double volume=0.01;extern double stoploss=12,takeprofit=12;extern int magic=50001,I=5; int ticket;double volumee ; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- volumee=volume; //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int BUY; //---- for( int i=OrdersHistoryTotal() -1;i>=0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); if (OrderMagicNumber( )== magic) { if(OrderSymbol()== Symbol()) { if(OrderType()==OP_BUY ) { if ((OrderProfit( )-3*Point) < OrderTakeProfit( ) && (OrderProfit( )+3*Point) > OrderTakeProfit( ) ) { if( OrderTicket( ) == ticket ) { volumee = volumee+volumee;}}}}}} if (volumee>volume*I){volumee=volume;} for ( i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_TICKET ) == true) Alert ("Select error ", GetLastError( ) ) ; if(OrderMagicNumber( )== magic){ if(OrderSymbol()== Symbol()) { if(OrderType()==OP_BUY ) { BUY++;}}}} if(BUY==0){ ticket= OrderSend( Symbol(), OP_BUY, volumee, NormalizeDouble(( Ask),Digits),NormalizeDouble(( Point*3),Digits) , NormalizeDouble(( Ask-stoploss*Point),Digits), NormalizeDouble(( Ask+takeprofit*Point),Digits), NULL, magic, 0, Red) ;} //---- return(0); } //+------------------------------------------------------------------+ 削除済み 2012.01.28 16:05 #5364 ほら、令状が2枚!! 削除済み 2012.01.28 16:17 #5365 もしかして、forループをいじって、1オーダー、もう1つマイナスして、ループの条件が全然満たされてないとか。そうそう、そうみたいです!ちょうど2つのオーダーが開かれています。 皆さん、前回のコメントは削除した方が良いですか? いや、まだ2つあって、3つ目か4つ目のティックの後にAlert: Select error 4105が書き込まれます。 注文が選択されていないようで、まずエラーは出ません...。これは正しい for( int i=0;i<=OrdersHistoryTotal();i++){ です。 というように for( int i=0;i<=OrdersTotal();i++){ とします。 そして、同じように2つのオーダーがあります。 以上、1本。ふぅ。; 削除済み 2012.01.28 17:24 #5366 4105-order not selected-エラーは解消されないが、概ね正常に動作する。 ivn 2012.01.28 18:00 #5367 Ivn: こんにちは別の時間軸の標準アドバイザーの書き方。例えば、1時間足のチャートにこのインジケータを置くと、4時間足のインジケータが表示されます。 пытался //+------------------------------------------------------------------+ //| 4時の方向にvv.mq4 |。 //| 著作権 © 2012, MetaQuotes Software Corp. //|https://www.metaquotes.net/| //+------------------------------------------------------------------+ #property copyright "著作権 © 2012, MetaQuotes Software Corp." #プロパティリンク "https://www.metaquotes.net/" #property indicator_chart_window #プロパティ indicator_buffers 3 #property indicator_color1 LightSeaGreen #property indicator_color2 LightSeaGreen #property indicator_color3 LightSeaGreen //---- インジケータ・パラメータ extern int BandsPeriod=20; extern inttern BandsShift=0; extern double BandsDeviations=2.0; //---- バッファ double MovingBuffer[]; double UpperBuffer[]; double LowerBuffer[]; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { //---- インジケータ SetIndexStyle(0,DRAW_LINE)を設定します。 SetIndexBuffer(0,MovingBuffer)を設定。 SetIndexStyle(1,DRAW_LINE)を設定します。 SetIndexBuffer(1,UpperBuffer)を設定します。 SetIndexStyle(2,DRAW_LINE)を設定します。 SetIndexBuffer(2,LowerBuffer)を設定します。 //---- SetIndexDrawBegin(0,BandsPeriod+BandsShift)を設定します。 SetIndexDrawBegin(1,BandsPeriod+BandsShift)を設定します。 SetIndexDrawBegin(2,BandsPeriod+BandsShift)を設定。 //---- return(0)です。 } //+------------------------------------------------------------------+ //| ボリンジャーバンド //+------------------------------------------------------------------+ int start() { int i,k,counted_bars=IndicatorCounted(); ダブルデビエーション double sum,oldval,newres; int B=iBars( NULL,PERIOD_H4); double C=iClose(NULL,PERIOD_H4,0); //---- if(B <=BandsPeriod) return(0); //---- 初期値ゼロ if(counted_bars<1) for(i=1;i<=BandsPeriod;i++) { MovingBuffer[B-i]=EMPTY_VALUE。 UpperBuffer[B-i]=EMPTY_VALUE。 LowerBuffer[B-i]=EMPTY_VALUE。 } //---- int limit=B-counted_bars。 if(counted_bars>0) limit++; for(i=0; i<limit; i++) MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA, PRICE_CLOSE,i)とする。 //---- i=B-BandsPeriod+1 とする。 if(counted_bars>BandsPeriod-1) i=B-counted_bars-1。 while(i>=0) { sum=0.0; k=i+BandsPeriod-1 とする。 oldval=MovingBuffer[i]; while(k>=i) { newres=C[k]-oldval; sum+=newres*newres; k--; } deviation=BandsDeviations*MathSqrt(sum/BandsPeriod) となります。 UpperBuffer[i]=oldval+deviationとする。 LowerBuffer[i]=oldval-deviationとする。 i--; } //---- return(0)です。 } //+------------------------------------------------------------------+ 動作せず この newres=C[k]-oldval;- '[' - 想定外のトークンです。 ボリンジャーバンドのインジケーターです。 C[k] の代わりに iClose(NULL,PERIOD_H4,k) を挿入します。 しかし、1時方向のチャートと4時方向のラインをより自然に表示する方法を手に入れました。 このコードをチャートに変換すると、価格がチャネルから離れるのがわかります。4時位置のボリンジャーバンドチャートが時間軸に接続されていないようです。 おつかれさまでした Роман 2012.01.29 02:45 #5368 みんな、経験から教えてくれないか...。MT4クライアントターミナルを介して取引するためのVPSを借りるために会社を選んだ、私は10 Sopsで、例えば、1つの実行中の端末を消費する平均でどのくらいのトラフィックに興味があるのですか? 複数の端末が稼働する... そのため、提供されているデータプランの中から適切なものを選択することができます。 P.S. 彼らは総トラフィック、すなわち着信+発信に基づく料金を設定しています。 Sersad 2012.01.29 08:31 #5369 同僚、答えを知っている人。同じ時間軸(2011年5月1日~2012年1月27日)で、EURUSD通貨ペア、時間足(H1)で、あるDC(Alpari)からストラテジーテスターを持って いますが、同じアドバイザーでも異なるコンピュータ(ラップトップ、デスクトップ)では逆の結果になりました。PCの場合-2000円、ノートPCの場合+3000円。そして、そこそこ、2-3回確認しました。 原因や対処法、またはこのトピックに関する記事を読むことができるリンクを教えてください。 Роман 2012.01.29 08:58 #5370 Sersad: 答えを知っている仲間たち。 同じ時間間隔(2011年5月1日~2012年1月27日)で、通貨ペアEURUSD、時間足(H1)で、あるDC(Alpari)から、同じExpert Advisorで、異なるコンピュータ(ラップトップ、デスクトップ)で、ストラテジー・テスターを行ったところ、反対の結果が出ました!PCの場合-2000円、ノートPCの場合+3000円。そして、そこそこ、2-3回確認しました。 原因や対処法、またはこのトピックに関する記事を読むことができるリンクを教えてください。 自分も一度巻き込まれたことがあるので...。が似ていた。1台目はMetacquotes、2台目はAlpareyでインストールし、履歴もそれなりにありましたが、同じowlでテストしても大きな食い違いがあり、何が悪いのか長い間分かりませんでした。 1.アルパリから端末をダウンロードする。対象機器の見積もり履歴をダウンロードすると、このウィンドウが表示されます。 F2の後に「ダウンロード」を押してもポップアップしない場合は、アルパリ相場履歴をダウンロードしていることを意味します。F2の後に「ダウンロード」を押してもこのウィンドウがポップアップされない場合は、アルパリからの価格履歴のダウンロードは行われていません。 2.ストラテジーテスターで、すべてのオプションを等しく設定し、「プロパティ」ボタンをクリックしてスプレッドを確認します。ストラテジーテスターの「Symbol properties」ボタンをクリックして、スプレッド値を確認します。 あなたがそれを行う前に - 拭くと、あなたが興味を持っている機器の見積もり履歴をリロード+テスト期間を確認してください:スクリーンショットH4で- それは両方のケースで同じであるようにします。 1...530531532533534535536537538539540541542543544...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここで質問です。
カスタムインジケータのコードから、そのインジケータが動作しているウィンドウが現在アクティブになっているかどうかを知ることはできますか?
例えば、同じインディケータが2つのウィンドウで動作している場合、チャートがアクティブになっているウィンドウでのみ動作し、2番目のウィンドウでは非アクティブになるようにする必要があります。
ありがとうございました。
今回も図書館が 役に立ちました :-)
もしかして、forループをいじって、1オーダー、もう1つマイナスして、ループの条件が全然満たされてないとか。そうそう、そうみたいです!ちょうど2つのオーダーが開かれています。
皆さん、前回のコメントは削除した方が良いですか?
いや、まだ2つあって、3つ目か4つ目のティックの後にAlert: Select error 4105が書き込まれます。
注文が選択されていないようで、まずエラーは出ません...。これは正しい for( int i=0;i<=OrdersHistoryTotal();i++){ です。
というように for( int i=0;i<=OrdersTotal();i++){ とします。
そして、同じように2つのオーダーがあります。
以上、1本。ふぅ。;
こんにちは別の時間軸の標準アドバイザーの書き方。例えば、1時間足のチャートにこのインジケータを置くと、4時間足のインジケータが表示されます。
пытался //+------------------------------------------------------------------+
//| 4時の方向にvv.mq4 |。
//| 著作権 © 2012, MetaQuotes Software Corp.
//|https://www.metaquotes.net/|
//+------------------------------------------------------------------+
#property copyright "著作権 © 2012, MetaQuotes Software Corp."
#プロパティリンク "https://www.metaquotes.net/"
#property indicator_chart_window
#プロパティ indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#property indicator_color3 LightSeaGreen
//---- インジケータ・パラメータ
extern int BandsPeriod=20;
extern inttern BandsShift=0;
extern double BandsDeviations=2.0;
//---- バッファ
double MovingBuffer[];
double UpperBuffer[];
double LowerBuffer[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexStyle(0,DRAW_LINE)を設定します。
SetIndexBuffer(0,MovingBuffer)を設定。
SetIndexStyle(1,DRAW_LINE)を設定します。
SetIndexBuffer(1,UpperBuffer)を設定します。
SetIndexStyle(2,DRAW_LINE)を設定します。
SetIndexBuffer(2,LowerBuffer)を設定します。
//----
SetIndexDrawBegin(0,BandsPeriod+BandsShift)を設定します。
SetIndexDrawBegin(1,BandsPeriod+BandsShift)を設定します。
SetIndexDrawBegin(2,BandsPeriod+BandsShift)を設定。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| ボリンジャーバンド
//+------------------------------------------------------------------+
int start()
{
int i,k,counted_bars=IndicatorCounted();
ダブルデビエーション
double sum,oldval,newres;
int B=iBars( NULL,PERIOD_H4);
double C=iClose(NULL,PERIOD_H4,0);
//----
if(B <=BandsPeriod) return(0);
//---- 初期値ゼロ
if(counted_bars<1)
for(i=1;i<=BandsPeriod;i++)
{
MovingBuffer[B-i]=EMPTY_VALUE。
UpperBuffer[B-i]=EMPTY_VALUE。
LowerBuffer[B-i]=EMPTY_VALUE。
}
//----
int limit=B-counted_bars。
if(counted_bars>0) limit++;
for(i=0; i<limit; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA, PRICE_CLOSE,i)とする。
//----
i=B-BandsPeriod+1 とする。
if(counted_bars>BandsPeriod-1) i=B-counted_bars-1。
while(i>=0)
{
sum=0.0;
k=i+BandsPeriod-1 とする。
oldval=MovingBuffer[i];
while(k>=i)
{
newres=C[k]-oldval;
sum+=newres*newres;
k--;
}
deviation=BandsDeviations*MathSqrt(sum/BandsPeriod) となります。
UpperBuffer[i]=oldval+deviationとする。
LowerBuffer[i]=oldval-deviationとする。
i--;
}
//----
return(0)です。
}
//+------------------------------------------------------------------+
動作せず
この newres=C[k]-oldval;- '[' - 想定外のトークンです。
ボリンジャーバンドのインジケーターです。
C[k] の代わりに iClose(NULL,PERIOD_H4,k) を挿入します。
しかし、1時方向のチャートと4時方向のラインをより自然に表示する方法を手に入れました。
このコードをチャートに変換すると、価格がチャネルから離れるのがわかります。4時位置のボリンジャーバンドチャートが時間軸に接続されていないようです。
おつかれさまでした
みんな、経験から教えてくれないか...。MT4クライアントターミナルを介して取引するためのVPSを借りるために会社を選んだ、私は10 Sopsで、例えば、1つの実行中の端末を消費する平均でどのくらいのトラフィックに興味があるのですか? 複数の端末が稼働する... そのため、提供されているデータプランの中から適切なものを選択することができます。
P.S. 彼らは総トラフィック、すなわち着信+発信に基づく料金を設定しています。
同僚、答えを知っている人。
同じ時間軸(2011年5月1日~2012年1月27日)で、EURUSD通貨ペア、時間足(H1)で、あるDC(Alpari)からストラテジーテスターを持って いますが、同じアドバイザーでも異なるコンピュータ(ラップトップ、デスクトップ)では逆の結果になりました。PCの場合-2000円、ノートPCの場合+3000円。そして、そこそこ、2-3回確認しました。
原因や対処法、またはこのトピックに関する記事を読むことができるリンクを教えてください。答えを知っている仲間たち。
同じ時間間隔(2011年5月1日~2012年1月27日)で、通貨ペアEURUSD、時間足(H1)で、あるDC(Alpari)から、同じExpert Advisorで、異なるコンピュータ(ラップトップ、デスクトップ)で、ストラテジー・テスターを行ったところ、反対の結果が出ました!PCの場合-2000円、ノートPCの場合+3000円。そして、そこそこ、2-3回確認しました。
原因や対処法、またはこのトピックに関する記事を読むことができるリンクを教えてください。自分も一度巻き込まれたことがあるので...。が似ていた。1台目はMetacquotes、2台目はAlpareyでインストールし、履歴もそれなりにありましたが、同じowlでテストしても大きな食い違いがあり、何が悪いのか長い間分かりませんでした。
1.アルパリから端末をダウンロードする。対象機器の見積もり履歴をダウンロードすると、このウィンドウが表示されます。
F2の後に「ダウンロード」を押してもポップアップしない場合は、アルパリ相場履歴をダウンロードしていることを意味します。F2の後に「ダウンロード」を押してもこのウィンドウがポップアップされない場合は、アルパリからの価格履歴のダウンロードは行われていません。
2.ストラテジーテスターで、すべてのオプションを等しく設定し、「プロパティ」ボタンをクリックしてスプレッドを確認します。ストラテジーテスターの「Symbol properties」ボタンをクリックして、スプレッド値を確認します。
あなたがそれを行う前に - 拭くと、あなたが興味を持っている機器の見積もり履歴をリロード+テスト期間を確認してください:スクリーンショットH4で- それは両方のケースで同じであるようにします。