[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 704 1...697698699700701702703704705706707708709710711...1145 新しいコメント odiseiff 2010.07.14 14:29 #7031 ToLik_SRGV: また、オデュッセウスは、先ほどの例ではこうなっていましたね。 そして今、このような状態になっています。 削除してないだろ、気のせいかな? 以下はそのコードです。 IndicatorBuffers(7); SetIndexBuffer(0, MACDBuffer); SetIndexBuffer(1, SignalBuffer); SetIndexBuffer(2, FastEMABuffer); SetIndexBuffer(3, SlowEMABuffer); SetIndexBuffer(4, SignalEMABuffer); SetIndexBuffer(5, Buffer1); SetIndexBuffer(6, Buffer2); SetIndexStyle(0, DRAW_NONE); SetIndexStyle(1, DRAW_LINE,EMPTY); SetIndexStyle(2, DRAW_LINE,EMPTY,2 ); SetIndexStyle(3, DRAW_NONE,EMPTY,2); SetIndexStyle(4, DRAW_NONE); SetIndexStyle(5, DRAW_HISTOGRAM,EMPTY, 2); SetIndexStyle(6, DRAW_HISTOGRAM,EMPTY, 2); SetIndexDrawBegin(0, SlowEMA); SetIndexDrawBegin(1, SlowEMA); IndicatorShortName("ZeroLag MACD Colored(" + FastEMA + "," + SlowEMA + "," + SignalEMA + ")"); SetIndexLabel(0, "MACD"); SetIndexLabel(1, "Signal"); SetIndexLabel(5, "MACD"); SetIndexLabel(6, "MACD"); odiseiff 2010.07.14 14:31 #7032 odiseif: 最終的なコードは以下の通りです。 すみません、間違えました。 ......がオリジナルです。 //+------------------------------------------------------------------+ //| ZeroLag MACD.mq4 | //| RD | //| marynarz15@wp.pl | //| Colored by SVK © 2009. | //+------------------------------------------------------------------+ #property copyright "RD" #property link "marynarz15@wp.pl" //---- #property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Black #property indicator_color2 Blue #property indicator_color3 Black #property indicator_color4 Black #property indicator_color5 Black #property indicator_color6 Lime #property indicator_color7 Red //---- input parameters extern int FastEMA = 12; extern int SlowEMA = 26; extern int SignalEMA = 9; //---- buffers double MACDBuffer[]; double SignalBuffer[]; double FastEMABuffer[]; double SlowEMABuffer[]; double SignalEMABuffer[]; double Buffer1[]; double Buffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(7); SetIndexBuffer(0, MACDBuffer); SetIndexBuffer(1, SignalBuffer); SetIndexBuffer(2, FastEMABuffer); SetIndexBuffer(3, SlowEMABuffer); SetIndexBuffer(4, SignalEMABuffer); SetIndexBuffer(5, Buffer1); SetIndexBuffer(6, Buffer2); SetIndexStyle(0, DRAW_NONE); SetIndexStyle(1, DRAW_LINE,EMPTY); SetIndexStyle(2, DRAW_NONE); SetIndexStyle(3, DRAW_NONE); SetIndexStyle(4, DRAW_NONE); SetIndexStyle(5, DRAW_HISTOGRAM); SetIndexStyle(6, DRAW_HISTOGRAM); SetIndexDrawBegin(0, SlowEMA); SetIndexDrawBegin(1, SlowEMA); IndicatorShortName("ZeroLag MACD Colored(" + FastEMA + "," + SlowEMA + "," + SignalEMA + ")"); SetIndexLabel(0, "MACD"); SetIndexLabel(1, "Signal"); SetIndexLabel(5, "MACD"); SetIndexLabel(6, "MACD"); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; double prev,current; int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; double EMA, ZeroLagEMAp, ZeroLagEMAq; for(int i = 0; i < limit; i++) { FastEMABuffer[i] = 100.0*iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i); SlowEMABuffer[i] = 100.0*iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, i); } for(i = 0; i < limit; i++) { EMA = iMAOnArray(FastEMABuffer, Bars, FastEMA, 0, MODE_EMA, i); ZeroLagEMAp = FastEMABuffer[i] + FastEMABuffer[i] - EMA; EMA = iMAOnArray(SlowEMABuffer, Bars, SlowEMA, 0, MODE_EMA, i); ZeroLagEMAq = SlowEMABuffer[i] + SlowEMABuffer[i] - EMA; MACDBuffer[i] = ZeroLagEMAp - ZeroLagEMAq; FastEMABuffer[i] = 0.0; SlowEMABuffer[i] = 0.0; } for(i = 0; i < limit; i++) SignalEMABuffer[i] = iMAOnArray(MACDBuffer, Bars, SignalEMA, 0, MODE_EMA, i); for(i = 0; i < limit; i++) { EMA = iMAOnArray(SignalEMABuffer, Bars, SignalEMA, 0, MODE_EMA, i); SignalBuffer[i] = SignalEMABuffer[i] + SignalEMABuffer[i] - EMA; SignalEMABuffer[i] = 0.0; } //---- dispatch values between 2 buffers bool up=true; for(i=limit-1; i>=0; i--) { current=MACDBuffer[i]; prev=MACDBuffer[i+1]; if(current>prev) up=true; if(current<prev) up=false; if(!up) { Buffer2[i]=current; Buffer1[i]=0.0; } else { Buffer1[i]=current; Buffer2[i]=0.0; } } return(0); } //+------------------------------------------------------------------+ Otomaru 2010.07.14 15:09 #7033 ToLik_SRGV: Sergey、私はあなたが何を変更したのか完全に理解していませんでした。なぜなら、あなたが提供したアドレスでは、CCI Filter の ソースコードを見るために登録する必要があるからです。 iWPRには applied_price パラメータがないので、1つだけエラーが見つかりましたので、正しいです。 すべて、ありがとう、今rrrrは動作します!!!! Dimitry 2010.07.14 17:21 #7034 ToLik_SRGV: 原理的には違いはありません。 私の関数を試してみてください。"medj "と目的のトロールをパラメータとして渡すだけの簡単なものです。 この関数は、tick毎に開始されるのであれば、任意の場所で開始時に呼び出されるはずです。 当然ながら、オーダーには異なるスライダーが必要です。 ロジャー なるほど、関数の最初に変数roを定義しておきながら、どこにも代入しない、つまり0になっているんですね。 ToLik_SRGVさん、 ありがとうございます。まだ、正常に動作しません。問題の隠し場所を間違えているということです。とにかくありがとう、自分で考えてみるよ。ロジャー、 infinity 2010.07.14 18:23 #7035 ここはいつも通り )))いつものように良い人たちに ))) 何が問題なのか、それがわからない。グローバル変数に関する問題点インジケータコードでやってます。string Global="Global"; //имя глобальной переменной int param; // параметр глобальной переменной int init() { GlobalVariablesDeleteAll(NULL); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { //привожу простой пример double bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0); double bar2= iOpen(Symbol(),PERIOD_M5,0); if (bar1>bar2){ param = 1; GlobalVariableSet(Global,param); } if (bar1<bar2){ param = 2; GlobalVariableSet(Global,param); } //---- return(0); }次に、Expert Advisorからグローバル 変数の値を取得しようとすると、次のようなコードになります。string Global="Global"; int param; int start() { int i= GlobalVariableSet(Global,param); Print (i); // Здесь он мне и выводит всякую лабуду вида : 1279217736 return(0); } 私は何を間違えているのだろう?1つまたは2つのパラメータ値を取得するはずでしたが、・・・・・・となりました。また、なぜEAコードの最初に名前と変数を書き直さなければならないのでしょうか? これらはグローバルとして存在するようですが、それがないとコンパイルがうまくいきません。 Юрий 2010.07.14 18:29 #7036 2つのBUY/SELLポジションを同時に持つことは可能ですか? 試してみました。買いポジションと売りポジションを同時に開く簡単なコードを書き、リアルタイムでEUR/USDに接続すると、それらが開くようです。 でも、それはデモ口座やストラテジーテスターでの 話であって、リアルタイムではどうなんだろう、証券会社は気にしてくれるかな? 今まで一度もやったことがない、こんな実験を始めたのは初めてだと思います。 削除済み 2010.07.14 18:31 #7037 Infinity:... グローバル 変数の値を読み取るには、別の関数が必要です :))) int i= GlobalVariableGet(Global); Artyom Trishkin 2010.07.14 18:32 #7038 Lim1: 2つのBUY/SELLポジションを同時に持つことは可能ですか? 試してみました。買いポジションと売りポジションを同時に開く簡単なコードを書き、リアルタイムでEUR/USDに接続すると、それらが開くようです。 でも、それはデモ口座やストラテジーテスターでの話であって、リアルタイムではどうなんだろう、証券会社は気にしてくれるかな? 今まで一度もやったことがない、こんな実験を始めたのは初めてだと思います。 開いて...をさせながら、...:) 一般的には、お使いのDCのサポートチームにお問い合わせください。 infinity 2010.07.14 18:57 #7039 ToLik_SRGV: グローバル変数の値を読み取るには、別の関数が必要です :))) とてもクリアで、本を見ても見えない、ワークスサンクス!質問で)移動します。すべて同じグローバル変数についてです。インジケータに以下の条件を追加してみました。 string EUR="EURUSD"; //имя глобальной переменной string GBP="GBPUSD"; //имя глобальной переменной string valuta=""; int param; // параметр глобальной переменной int init() { GlobalVariablesDeleteAll(NULL); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { string symb = Symbol(); //Здесь узнаю на какой валюте стоит индикатор if (symb==EUR) {valuta=EUR;} // здесь сравнивая ,в переменную занощу имя глобальной переменной if (symb==GBP) {valuta=GBP;} // которую следует использовать //привожу простой пример double bar1= iMA(Symbol(),PERIOD_M5,13,0,MODE_SMMA,PRICE_TYPICAL,0); double bar2= iOpen(Symbol(),PERIOD_M5,0); if (bar1>bar2){ param = 1; GlobalVariableSet(valuta,param); } // а здесь присваиваю параметр глобальной переменной if (bar1<bar2){ param = 2; GlobalVariableSet(valuta,param); } return(0); } インジケータがどの通貨を基準にしているかによって、どのグローバル変数に値を割り当てるかを定義したいのです。 グローバル変数GlobalVariableSet(valuta,param)に、名前(valuta)に上記の値を代入することは理解できたのですが......。 Expert Advisorのコードでグローバル変数を再度呼び出します。 文字列 valuta="valuta"; int i= GlobalVariableGet(valuta); // しかし、値が取得できない、、、。もしかして、この方法ではグローバル変数名を 変更することはできないのでしょうか? この名前でグローバル変数を呼び出すことはできないが、文字列名GlobalVariableGet("EURUSD")を登録すると動作することが判明した)。 igor 2010.07.14 19:08 #7040 まず、ヘルプから doubleGlobalVariableGet() 文字列名) 既存のグローバル変数の値を返すか、エラーの場合は 0 を返す。GetLastError()を呼び出すと、エラー情報を得ることができます。 GVの中身が見えるが、取り出せない? 1...697698699700701702703704705706707708709710711...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
また、オデュッセウスは、先ほどの例ではこうなっていましたね。
そして今、このような状態になっています。
削除してないだろ、気のせいかな?最終的なコードは以下の通りです。
Sergey、私はあなたが何を変更したのか完全に理解していませんでした。なぜなら、あなたが提供したアドレスでは、CCI Filter の ソースコードを見るために登録する必要があるからです。
iWPRには applied_price パラメータがないので、1つだけエラーが見つかりましたので、正しいです。
すべて、ありがとう、今rrrrは動作します!!!!
原理的には違いはありません。
私の関数を試してみてください。"medj "と目的のトロールをパラメータとして渡すだけの簡単なものです。
この関数は、tick毎に開始されるのであれば、任意の場所で開始時に呼び出されるはずです。
当然ながら、オーダーには異なるスライダーが必要です。
ロジャー
なるほど、関数の最初に変数roを定義しておきながら、どこにも代入しない、つまり0になっているんですね。
ここはいつも通り )))いつものように良い人たちに )))
何が問題なのか、それがわからない。グローバル変数に関する問題点インジケータコードでやってます。
次に、Expert Advisorからグローバル 変数の値を取得しようとすると、次のようなコードになります。
私は何を間違えているのだろう?1つまたは2つのパラメータ値を取得するはずでしたが、・・・・・・となりました。また、なぜEAコードの最初に名前と変数を書き直さなければならないのでしょうか? これらはグローバルとして存在するようですが、それがないとコンパイルがうまくいきません。2つのBUY/SELLポジションを同時に持つことは可能ですか?
試してみました。買いポジションと売りポジションを同時に開く簡単なコードを書き、リアルタイムでEUR/USDに接続すると、それらが開くようです。
でも、それはデモ口座やストラテジーテスターでの 話であって、リアルタイムではどうなんだろう、証券会社は気にしてくれるかな?
今まで一度もやったことがない、こんな実験を始めたのは初めてだと思います。
int i= GlobalVariableGet(Global);
2つのBUY/SELLポジションを同時に持つことは可能ですか?
試してみました。買いポジションと売りポジションを同時に開く簡単なコードを書き、リアルタイムでEUR/USDに接続すると、それらが開くようです。
でも、それはデモ口座やストラテジーテスターでの話であって、リアルタイムではどうなんだろう、証券会社は気にしてくれるかな?
今まで一度もやったことがない、こんな実験を始めたのは初めてだと思います。
一般的には、お使いのDCのサポートチームにお問い合わせください。
グローバル変数の値を読み取るには、別の関数が必要です :)))
とてもクリアで、本を見ても見えない、ワークスサンクス!質問で)移動します。すべて同じグローバル変数についてです。インジケータに以下の条件を追加してみました。
インジケータがどの通貨を基準にしているかによって、どのグローバル変数に値を割り当てるかを定義したいのです。
グローバル変数GlobalVariableSet(valuta,param)に、名前(valuta)に上記の値を代入することは理解できたのですが......。
Expert Advisorのコードでグローバル変数を再度呼び出します。
文字列 valuta="valuta";
int i= GlobalVariableGet(valuta); // しかし、値が取得できない、、、。もしかして、この方法ではグローバル変数名を 変更することはできないのでしょうか?
この名前でグローバル変数を呼び出すことはできないが、文字列名GlobalVariableGet("EURUSD")を登録すると動作することが判明した)。
まず、ヘルプから
既存のグローバル変数の値を返すか、エラーの場合は 0 を返す。GetLastError()を呼び出すと、エラー情報を得ることができます。
GVの中身が見えるが、取り出せない?