コーディングのヘルプが必要 - ページ 8 1234567891011121314 新しいコメント Mladen Rakic 2013.01.23 10:20 #71 ジョ このようなものです。 if (MACD[0]>MACD[1]) Alert("Message to use for alert"): Jovager: こんにちは。インジケータでアラートを出すにはどうしたらいいですか? 例えば、MACD[0]>MACD[1]の時にどのようにアラートするのですか? 助けてくれてありがとうございます。 ジョウ Jovager 2013.01.23 15:32 #72 mladen: ジョこのようなものです。 if (MACD[0]>MACD[1]) Alert("Message to use for alert"): ありがとうムラデン、でもどこに? 私はメッセージを持っていた。 赤色 -If_function not defined Red-Alert_Semicolonが予想されます。 ------------------------------------------------------------------------------------------------------------------ #プロパティindicator_separate_window #property indicator_buffers 2 (インジケータバッファ2) #property indicator_color1 シルバー #property indicator_color2 レッド #property indicator_width1 2 (プロパティ インジケータ幅1) //---- インジケーターのパラメーター extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- インジケータ・バッファ double MacdBuffer[]; double SignalBuffer[]; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { //---- 描画設定 SetIndexStyle(0,DRAW_HISTOGRAM)を設定します。 SetIndexStyle(1,DRAW_LINE)を設定します。 SetIndexDrawBegin(1,SignalSMA)を設定します。 インジケータDigits(Digits+1); //---- インジケータ・バッファのマッピング SetIndexBuffer(0,MacdBuffer)を設定します。 SetIndexBuffer(1,SignalBuffer)を設定します。 //---- データウィンドウとインジケータサブウィンドウのラベルの名前 IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")").を設定します。 SetIndexLabel(0, "MACD")を設定します。 SetIndexLabel(1, "Signal"); //---- 初期化完了 return(0); } //+------------------------------------------------------------------+ //| 移動平均の収束・発散について //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- 1stバッファでカウントされたmacd for(int i=0; i<limit; i++) MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) とします。 //---- 2番目のバッファでカウントされる信号線 for(i=0; i<limit; i++) SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i); //----完了 return(0); } //+-------------------------------------------- [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 コーディングのヘルプ マルチタイムフレーム・インディケーター Mladen Rakic 2013.01.23 15:33 #73 あなたのコードの最後のリターンの直前(そうすることで、残りのすべての処理が終了したときにのみ実行されることを保証する)。 Jovager: ありがとうMladen、でもどこに?というメッセージが表示されました。 赤色 -If_function 未定義 赤色-アラート_セミコロンが予想されます。 ------------------------------------------------------------------------------------------------------------------ #property indicator_separate_window #property indicator_buffers 2 (インジケータバッファ2) #property indicator_color1 シルバー #property indicator_color2 レッド #property indicator_width1 2 (プロパティ インジケータ幅1) //---- インジケーターのパラメーター extern int FastEMA=12; extern int SlowEMA=26; extern int SignalSMA=9; //---- インジケータ・バッファ double MacdBuffer[]; double SignalBuffer[]; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { //---- 描画設定 SetIndexStyle(0,DRAW_HISTOGRAM)を設定します。 SetIndexStyle(1,DRAW_LINE)を設定します。 SetIndexDrawBegin(1,SignalSMA)を設定します。 インジケータDigits(Digits+1); //---- インジケータ・バッファのマッピング SetIndexBuffer(0,MacdBuffer)を設定します。 SetIndexBuffer(1,SignalBuffer)を設定します。 //---- データウィンドウとインジケータサブウィンドウのラベルの名前 IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")").を設定します。 SetIndexLabel(0, "MACD")を設定します。 SetIndexLabel(1, "Signal"); //---- 初期化完了 return(0); } //+------------------------------------------------------------------+ //| 移動平均の収束・発散について //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- 1stバッファでカウントされたmacd for(int i=0; i<limit; i++) MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) とします。 //---- 2番目のバッファでカウントされる信号線 for(i=0; i<limit; i++) SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i); //----完了 return(0); } //+-------------------------------------------- privateer 2013.02.10 13:38 #74 Pls fix Zero divide error when using timeframe as "0" (タイムフレームを "0 "として使用した場合のゼロ除算エラー pivot_crazy.mq4Could someone please fix the zero divide error when using the timeframe as "0". ありがとうございます。 ファイル: pivot_crazy.mq4 5 kb Mladen Rakic 2013.02.10 14:46 #75 お試しください。現在、修正されています privateer:pivot_crazy.mq4Could someone please fix the zero divide error when using the timeframe as "0" Thanks. ファイル: pivot_crazy_1.mq4 5 kb privateer 2013.02.10 15:46 #76 ありがとうmladenは魅力的です mladen: 試してみてください。現在、修正されています thank u mladen works like a charm blondutrader 2013.02.10 16:30 #77 私はこのEAで助けが必要です そのマーチンゲール関数を持っていますが、例えば、その位置が損失で閉じている場合マーチンゲール関数は損失で閉じた最後の位置のロットを掛ける必要がありますが、そのコードでエラーが発生し、マーチンゲールはここで正常に動作します そのeauniversalmacrossea.mq4 ファイル: universalmacrossea.mq4 34 kb techmac 2013.02.10 18:01 #78 損失が出た後に新しい注文を出す方法はマーチンゲールではありません + マーチンゲールはオープンポジションで機能します blondutrader: このEAにはマーチンゲール機能がありますが、うまく機能しません。例えば、あるポジションが損失で閉じられた場合、マーチンゲール機能は損失で閉じられた最後のポジションのロットを掛けるはずですが、マーチンゲールをうまく機能させるコードにエラーがあります eauniversalmacrossea.mq4は、こちらです。 sunshineh 2013.02.11 10:52 #79 私は私のお金のすべての貿易f.e.5%とトレーダーにしたいとき、どのように私は、私のロットサイズを計算することができます? Mladen Rakic 2013.02.11 12:12 #80 sunshineh この関数を 使用してみてください。 double getLots(string symbol, double Risk, double stopLossDistance) { RefreshRates(); double lots = 0; double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2); double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2); double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2); int LotDigit = 2; if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0; // // // // // if (LotStep==1) LotDigit=0; if (LotStep==0.1) LotDigit=1; if (LotStep==0.01) LotDigit=2; if (Risk>0) { if (AccountBalance()>AccountFreeMargin()) lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit); else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit); } // // // // // lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit); lots = MathMax(MathMin(lots,MaxLots),MinLots); return(lots); } sunshineh: どのように私は私のロットサイズを計算することができます、私はすべての貿易とトレーダーしたいときに、私のお金の5%、例えば? Need help with coding Dynamic Lots コーディングの方法は? 1234567891011121314 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ジョ
このようなものです。
こんにちは。
インジケータでアラートを出すにはどうしたらいいですか?
例えば、MACD[0]>MACD[1]の時にどのようにアラートするのですか?
助けてくれてありがとうございます。
ジョウジョ
このようなものです。
ありがとうムラデン、でもどこに?
私はメッセージを持っていた。
赤色 -If_function not defined
Red-Alert_Semicolonが予想されます。
------------------------------------------------------------------------------------------------------------------
#プロパティindicator_separate_window
#property indicator_buffers 2 (インジケータバッファ2)
#property indicator_color1 シルバー
#property indicator_color2 レッド
#property indicator_width1 2 (プロパティ インジケータ幅1)
//---- インジケーターのパラメーター
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- インジケータ・バッファ
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- 描画設定
SetIndexStyle(0,DRAW_HISTOGRAM)を設定します。
SetIndexStyle(1,DRAW_LINE)を設定します。
SetIndexDrawBegin(1,SignalSMA)を設定します。
インジケータDigits(Digits+1);
//---- インジケータ・バッファのマッピング
SetIndexBuffer(0,MacdBuffer)を設定します。
SetIndexBuffer(1,SignalBuffer)を設定します。
//---- データウィンドウとインジケータサブウィンドウのラベルの名前
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")").を設定します。
SetIndexLabel(0, "MACD")を設定します。
SetIndexLabel(1, "Signal");
//---- 初期化完了
return(0);
}
//+------------------------------------------------------------------+
//| 移動平均の収束・発散について
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- 1stバッファでカウントされたmacd
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) とします。
//---- 2番目のバッファでカウントされる信号線
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//----完了
return(0);
}
//+--------------------------------------------
あなたのコードの最後のリターンの直前(そうすることで、残りのすべての処理が終了したときにのみ実行されることを保証する)。
ありがとうMladen、でもどこに?
というメッセージが表示されました。
赤色 -If_function 未定義
赤色-アラート_セミコロンが予想されます。
------------------------------------------------------------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers 2 (インジケータバッファ2)
#property indicator_color1 シルバー
#property indicator_color2 レッド
#property indicator_width1 2 (プロパティ インジケータ幅1)
//---- インジケーターのパラメーター
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- インジケータ・バッファ
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- 描画設定
SetIndexStyle(0,DRAW_HISTOGRAM)を設定します。
SetIndexStyle(1,DRAW_LINE)を設定します。
SetIndexDrawBegin(1,SignalSMA)を設定します。
インジケータDigits(Digits+1);
//---- インジケータ・バッファのマッピング
SetIndexBuffer(0,MacdBuffer)を設定します。
SetIndexBuffer(1,SignalBuffer)を設定します。
//---- データウィンドウとインジケータサブウィンドウのラベルの名前
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")").を設定します。
SetIndexLabel(0, "MACD")を設定します。
SetIndexLabel(1, "Signal");
//---- 初期化完了
return(0);
}
//+------------------------------------------------------------------+
//| 移動平均の収束・発散について
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- 1stバッファでカウントされたmacd
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i) とします。
//---- 2番目のバッファでカウントされる信号線
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//----完了
return(0);
}
//+--------------------------------------------Pls fix Zero divide error when using timeframe as "0" (タイムフレームを "0 "として使用した場合のゼロ除算エラー
pivot_crazy.mq4Could someone please fix the zero divide error when using the timeframe as "0".
ありがとうございます。
お試しください。現在、修正されています
pivot_crazy.mq4Could someone please fix the zero divide error when using the timeframe as "0" Thanks.
ありがとうmladenは魅力的です
試してみてください。現在、修正されています
thank u mladen works like a charm
私はこのEAで助けが必要です そのマーチンゲール関数を持っていますが、例えば、その位置が損失で閉じている場合マーチンゲール関数は損失で閉じた最後の位置のロットを掛ける必要がありますが、そのコードでエラーが発生し、マーチンゲールはここで正常に動作します そのeauniversalmacrossea.mq4
損失が出た後に新しい注文を出す方法はマーチンゲールではありません + マーチンゲールはオープンポジションで機能します
このEAにはマーチンゲール機能がありますが、うまく機能しません。例えば、あるポジションが損失で閉じられた場合、マーチンゲール機能は損失で閉じられた最後のポジションのロットを掛けるはずですが、マーチンゲールをうまく機能させるコードにエラーがあります eauniversalmacrossea.mq4は、こちらです。
私は私のお金のすべての貿易f.e.5%とトレーダーにしたいとき、どのように私は、私のロットサイズを計算することができます?
sunshineh
この関数を 使用してみてください。
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}どのように私は私のロットサイズを計算することができます、私はすべての貿易とトレーダーしたいときに、私のお金の5%、例えば?