[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 647 1...640641642643644645646647648649650651652653654...1145 新しいコメント DDFedor 2010.06.24 15:16 #6461 Mathers: の右側です。 Lonely_man 2010.06.24 16:22 #6462 フォーラムメンバーの皆様こんにちは。 トレンドラインを構築するための興味深いコードを見つけました。 そして、それで少し遊ぶことにしました - それはポイントではなく、パーセントでトレンドラインを描くだろうが、何らかの理由で - 私の完成後のタレットは、履歴を描画停止 - のみ最後の3バー(またはむしろあなたがタレットを実行すると、それは通常の開始以来描画トレンドライン、一度あなたがタレット-OKプロパティを更新するようにクリックして履歴がリセットされます)。 何がいけなかったのか? 以下のコードを描きましたが、太字で書いた部分のどこが問題なのか、どなたか教えてください。 問題は、インジケータがすぐにヒストリを逆方向に描画し、パラメータを変更してもリセットされないことです。 #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 LimeGreen ダブルAUD。 extern int PerAvr=5,Delta=1; double Idx[]; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { //---- インジケータ SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2)を設定します。 SetIndexBuffer(0,Idx)を設定する。 //---- return(0)です。 } //+------------------------------------------------------------------+ //| カストマーインジケーター初期化機能 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| カスタムインジケータ反復関数 //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; for(int i=limit; i>=0; i--) { AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)となります。 //if (Curency =="AUDUSD") Idx[i] = AUD; } //---- //---- return(0)です。 } //+------------------------------------------------------------------+ [WARNING CLOSED!] Any newbie どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - コーディングの方法は? Alexander 2010.06.24 17:55 #6463 Lonely_man: フォーラムの皆さん、こんにちは。 トレンドラインを作るための面白いコードを見つけました。 少し遊んでみることにしました。 あるプログラマーの家庭で、息子が父親に「なぜ太陽は東から昇り、西に沈むのか」と詰め寄ったという逸話を、なぜか私は思い出した。 パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- そうですね、動いているものは触らないようにしましょう。 Artyom Trishkin 2010.06.24 18:16 #6464 Roger: あるプログラマーの家庭で、息子が父親に「なぜ太陽は東から昇り、西に沈むのか」と詰め寄ったという逸話を、なぜか私は思い出した。 パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。 :)) Igor Makanu 2010.06.24 19:38 #6465 Lonely_man: フォーラムユーザーの皆様、こんにちは!トレンドラインを引くための面白いコードを見つけました。 面白いのは、自分の主義主張に従ってコードを変更したのに、学者軍団に欠点を見つけさせようとすることです。 というような情報を出力して、解説で得たい情報を得ようとしているだけではないでしょうか? すべてがうまくいっても、現在の価格には表示されず、チャートの下の方にあるデータを得ることができます - 私はseparatetwindsだと思います。 SZS グッドラック Lonely_man 2010.06.24 21:04 #6466 IgorM: 面白いのは、自分の主義主張に従ってコードを変更したのに、学者軍団に欠点を見つけさせようとすることです。 というような情報を出力して、解説で得たい情報を得ようとしているだけではないでしょうか? すべてがうまくいっても、現在の価格には表示されず、チャートの下の方にあるデータを得ることができます - それはseparatetwindsだと思います。 SZS グッドラック セパレータのことは知っています - 別ウィンドウで、それについてではありません。 このコードで何が起こるかわかりません - どうやらこの計算方法は、パーセンテージではうまくいかないようです((. ロジャー すぐに、なぜかあるジョークを思い出した。プログラマーの息子が父親のところにやってきて、「なぜ太陽は東から昇り、西に沈むのですか? パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。 )))ヒント:クロス通貨取引に必要です。 GBPやJPYのドルに対するpipsの変化では、どちらが値下がりしたかという完全な情報は得られませんが、ドルに対する変化率ではすべてが明確にわかります。 Владимир Тезис 2010.06.25 00:23 #6467 Mathers: ありがとうございます。EAは新しいティックが入るたびに起動するのに対して、スクリプトは無限ループで起動し続けないといけないという違いだけでしょうか。 必ずしもそうではありません。すべては脚本の目的次第です。スクリプトの目的が一発勝負の場合(これが大多数)、無限のループを作り上げる必要はないのです。このようなワンタイムスクリプトの例として、あらかじめ設定したロットでポジションを建てる際に、マーケットに投入する金額を計算する必要があります。最小ロットでのポイント価格は商品によって異なるため、必要な商品を開いてスクリプトを適用し、パラメータウィンドウに目的のロットを入力し、取引が開始された場合にブロックされる金額を確認する方が簡単です。 これはあくまで一例です。スクリプトの目的は異なるかもしれません。 削除済み 2010.06.25 00:29 #6468 Lonely_man: 分離は意識してる、別ウィンドウになってる、関係ない。 このコードでうまくいくのかー、どうもこのパーセント計算の方法はうまくいかない((. ロジャー すぐに、なぜかあるジョークを思い出した。プログラマーの家庭の息子が父親のところにやってきて、「なぜ太陽は東から昇り、西に沈むのですか? パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。 )))英ポンドや日本円のドルに対するpipsでは、どちらが値下がりしたのか完全な情報にはなりませんが、米ドルに対する変化率ではすべてが明確にわかります。 かなりシンプルなインジケーターですね。 パーセンテージがpipsより優れているとは思えませんが、まあいいでしょう。 失敗もありましたが :) 1. AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); パーセンテージを正しく計算するためには、括弧を付ける必要があります。 AUD=((iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta))*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); 2. 問題は、インジケータがすぐにヒストリを逆方向に描画し、パラメータを変更してもリセットされないことです。 一番面白いのは、スポーツの面白さに目覚めて、インジケーターに30分も座っていたことです。 なぜ履歴が計算されなかったのでしょうか? 答えは、割り算の演算を追加したことです。 100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta) iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE ,i+Delta) 関数が履歴の一番最初に0を返すことは考慮されていない。そして、0 で割ろうとするとエラー 4013 (ERR_ZERO_DIVIDE) で「追い出される」ので、ログを確認してみてください。 FORループにもう1つチェックを入れてもよい。 if(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta) == 0)continue; そして、すべてがうまくいく。以下、私のバリエーションです。 #property copyright "Copyright © 2010, Анатолий Сергеев" #property link "mql.sergeev@yandex.ru" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 LimeGreen double AUD; extern int PerAvr=5,Delta=1; double Idx[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ //---- indicators SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(0,Idx); //---- } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; for(int i=limit; i>=0; i--){ double a = iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i); double b = iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta); if(b == 0)continue; AUD=((a-b)*100/b); Idx[i] = AUD; } } //+------------------------------------------------------------------+ Sergey Guliaev 2010.06.25 11:52 #6469 #プロパティ indicator_color1 白 start()モジュールで、このパラメータをプログラム的に変更することは可能でしょうか? つまり、プログラムの進行に応じて、バッファに設定されている色を変更することは可能でしょうか? Victor Nikolaev 2010.06.25 11:58 #6470 valenok2003: #プロパティ indicator_color1 白 start()モジュールで、このパラメータをプログラム的に変更することは可能でしょうか? つまり、プログラムの進行に応じて、バッファに設定されている色を変更することは可能でしょうか? そんなことはないだろう。そして、なぜそうしなければならないのか? 1...640641642643644645646647648649650651652653654...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
の右側です。
以下のコードを描きましたが、太字で書いた部分のどこが問題なのか、どなたか教えてください。
問題は、インジケータがすぐにヒストリを逆方向に描画し、パラメータを変更してもリセットされないことです。
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LimeGreen
ダブルAUD。
extern int PerAvr=5,Delta=1;
double Idx[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2)を設定します。
SetIndexBuffer(0,Idx)を設定する。
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カストマーインジケーター初期化機能
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| カスタムインジケータ反復関数
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(int i=limit; i>=0; i--)
{
AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)となります。
//if (Curency =="AUDUSD")
Idx[i] = AUD;
}
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
フォーラムの皆さん、こんにちは。 トレンドラインを作るための面白いコードを見つけました。 少し遊んでみることにしました。
あるプログラマーの家庭で、息子が父親に「なぜ太陽は東から昇り、西に沈むのか」と詰め寄ったという逸話を、なぜか私は思い出した。
パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- そうですね、動いているものは触らないようにしましょう。
あるプログラマーの家庭で、息子が父親に「なぜ太陽は東から昇り、西に沈むのか」と詰め寄ったという逸話を、なぜか私は思い出した。
パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。
フォーラムユーザーの皆様、こんにちは!トレンドラインを引くための面白いコードを見つけました。
面白いのは、自分の主義主張に従ってコードを変更したのに、学者軍団に欠点を見つけさせようとすることです。
というような情報を出力して、解説で得たい情報を得ようとしているだけではないでしょうか? すべてがうまくいっても、現在の価格には表示されず、チャートの下の方にあるデータを得ることができます - 私はseparatetwindsだと思います。
SZS グッドラック
面白いのは、自分の主義主張に従ってコードを変更したのに、学者軍団に欠点を見つけさせようとすることです。
というような情報を出力して、解説で得たい情報を得ようとしているだけではないでしょうか? すべてがうまくいっても、現在の価格には表示されず、チャートの下の方にあるデータを得ることができます - それはseparatetwindsだと思います。
SZS グッドラック
セパレータのことは知っています - 別ウィンドウで、それについてではありません。 このコードで何が起こるかわかりません - どうやらこの計算方法は、パーセンテージではうまくいかないようです((.
すぐに、なぜかあるジョークを思い出した。プログラマーの息子が父親のところにやってきて、「なぜ太陽は東から昇り、西に沈むのですか?
パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。
ありがとうございます。EAは新しいティックが入るたびに起動するのに対して、スクリプトは無限ループで起動し続けないといけないという違いだけでしょうか。
必ずしもそうではありません。すべては脚本の目的次第です。スクリプトの目的が一発勝負の場合(これが大多数)、無限のループを作り上げる必要はないのです。このようなワンタイムスクリプトの例として、あらかじめ設定したロットでポジションを建てる際に、マーケットに投入する金額を計算する必要があります。最小ロットでのポイント価格は商品によって異なるため、必要な商品を開いてスクリプトを適用し、パラメータウィンドウに目的のロットを入力し、取引が開始された場合にブロックされる金額を確認する方が簡単です。
これはあくまで一例です。スクリプトの目的は異なるかもしれません。
分離は意識してる、別ウィンドウになってる、関係ない。 このコードでうまくいくのかー、どうもこのパーセント計算の方法はうまくいかない((.
すぐに、なぜかあるジョークを思い出した。プログラマーの家庭の息子が父親のところにやってきて、「なぜ太陽は東から昇り、西に沈むのですか?
パパ、パソコンから目を離さずに、本当に東から昇るの?-はい -そして、西に沈む?- ああ 毎日か?- まあ、動いていれば何も触る必要はないんですけどね。
かなりシンプルなインジケーターですね。 パーセンテージがpipsより優れているとは思えませんが、まあいいでしょう。
失敗もありましたが :)
1.
パーセンテージを正しく計算するためには、括弧を付ける必要があります。
2.
問題は、インジケータがすぐにヒストリを逆方向に描画し、パラメータを変更してもリセットされないことです。
一番面白いのは、スポーツの面白さに目覚めて、インジケーターに30分も座っていたことです。
なぜ履歴が計算されなかったのでしょうか?
答えは、割り算の演算を追加したことです。
iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE ,i+Delta) 関数が履歴の一番最初に0を返すことは考慮されていない。そして、0 で割ろうとするとエラー 4013 (ERR_ZERO_DIVIDE) で「追い出される」ので、ログを確認してみてください。
FORループにもう1つチェックを入れてもよい。
そして、すべてがうまくいく。以下、私のバリエーションです。
#プロパティ indicator_color1 白
start()モジュールで、このパラメータをプログラム的に変更することは可能でしょうか?
つまり、プログラムの進行に応じて、バッファに設定されている色を変更することは可能でしょうか?
#プロパティ indicator_color1 白
start()モジュールで、このパラメータをプログラム的に変更することは可能でしょうか?
つまり、プログラムの進行に応じて、バッファに設定されている色を変更することは可能でしょうか?
そんなことはないだろう。そして、なぜそうしなければならないのか?