コーディングのヘルプ - ページ 13 1...67891011121314151617181920...786 新しいコメント 削除済み 2011.07.21 00:49 #121 クイックEA改造 こんにちは。 以下のコードを変更しようとしたのですが、EAがMT4をクラッシュさせ続けてしまうので、助けが必要です。 私は、現在のバー(つまり注文が実行されたバー)が閉じられたときに注文を閉じたい。基本的に1つのバーを取引します。 これはオリジナルのコードで、シグナルからシグナルへトレードします。 //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY; //+------------------------------------------------------------------+ //| Signal End(Exit Buy) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderOpenPrice() > Point * TrailingStop) { if(OrderStopLoss() < Bid - Point * TrailingStop) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen); if (!EachTickMode) BarCount = Bars; continue; } } } } else { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Sell) | //+------------------------------------------------------------------+ if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL; //+------------------------------------------------------------------+ //| Signal End(Exit Sell) | //+------------------------------------------------------------------+ if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell"); if (!EachTickMode) BarCount = Bars; IsTrade = False; continue; } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } //+------------------------------------------------------------------+ //| Signal Begin(Entry) | //+------------------------------------------------------------------+ //if (timeprev!=Time[0]){ // timeprev = Time[0]; if (signalup!=EMPTY_VALUE&&signalup!=0) { Order = SIGNAL_BUY; } if (signaldown!=EMPTY_VALUE&&signaldown!=0){ Order = SIGNAL_SELL; } // } //+------------------------------------------------------------------+ //| Signal End | //+------------------------------------------------------------------+ //Buy if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("BUY order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy"); } else { Print("Error opening BUY order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } //Sell if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (100 * Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0; if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0; Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink); if(Ticket > 0) { if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) { Print("SELL order opened : ", OrderOpenPrice()); if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell"); } else { Print("Error opening SELL order : ", GetLastError()); } } if (EachTickMode) TickCheck = True; if (!EachTickMode) BarCount = Bars; return(0); } } if (!EachTickMode) BarCount = Bars; return(0); } //+------------------------------------------------------------------+ どなたか助けていただけませんか? コーディングの方法は? アスク! Coding help slavko1969 2011.08.12 14:09 #122 助けてください!!!!!! 次のような機能を持つEAが必要です。 ある時間帯に4枚の買い注文 または売り 注文を設定する。 関数。 注文は時間(変数00から24まで)を開く order1 sell or buy lot (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) 注文2 ロットの売りまたは買い (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) order3 ロットの売り買い (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) order4 売りまたは買いロット (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open) ありがとうございます Coding help Free EA creation Multi Timeframe Indicators sando4x 2011.08.18 23:37 #123 私のEAに、ある価格水準でそれを無効にするコードを追加する必要があります。 こんにちは。 私のEAに、ある価格水準でEAを無効にしたり有効にしたりするコードを追加する必要があります。 私は検索して、私はそれを行うことができることを発見しました。 # iclude<WinUser32mqh extern bool Disable Ea = true // X (examply1.4420) から Y (examply1.4380) までと Z (examply1.4480) から N (examply1.4520) まで // を無効にする。 extern bool Enable Ea = true // R(examply -1.4420) から T(examply -1.4480) まで。 これらの条件をコードに変換して、EAのダイアログボックスで、EAを無効/有効にするための価格レベルを入力できるようにしていただけると助かります。 Coding help Can't get the right How to make the sando4x 2011.08.20 02:40 #124 いろいろ調べてみると、EAの起動関数に コードを書いておくと、ある条件で起動することがわかりました。 そこで、エキスパート開始関数の下に以下のように書きました。 if(PRICE_MEDIAN (SellLevel-Point*BufferPips)) return (0) ------------------------------------------------------------------------------------------------------------------ BufferPipsは、ダイアログボックスで値を変更できるように、extern doubleで追加しました。 PRICE_MEDIANが良い選択かどうかはわかりません。 私は、コンパイルエラー - 不均衡な左括弧を取得しています。 助けてください。 mario86 2011.09.14 12:48 #125 ヘルプミーオートトレード こんにちは、Mr.Guru! 自動売買をやっているのですが、動きません。 ファイル: auto_me.mq4 4 kb mikhail 2011.10.07 14:44 #126 マリオさん、こんにちは。 この条件if(current_shortEma == current_longEma) は決して真ではないと思います。 通常、クロスを検出するためには、次のようにする必要があります。 if(current_shortEma > current_longEma && last_shortEma < last_longEma){ //cross bottom. //下からのクロス } if(current_shortEma last_longEma){ //cross from the top }. //上からクロス } より詳細な情報はこちら https://www.mql5.com/en/forum/trading_systems ありがとうございます。 ミハイル xx3xxx 2011.10.07 22:39 #127 私もコーディングの依頼を受けました ---- コーダーが必要です (とても簡単な作業です) 私たちはHAを知っている -- 足し算はめったに間違いではない コンソリデーションや、Uターンしそうなときは、どんどん短くなる。 一方、トレンドがまだ強いとき、そのバーのHAはLONGになる。 というわけで トレンドの強さを教えてくれるインジケータがあればいいのですが。 アイデアは簡単です。 --- まず、どんなHAでも良いので(ex4は同封したが、MQ4はHA用)、それを修正する(簡単な作業だと思う)。 HAの色は2色しかない、1つはブルー*アップ ---- + ----、1つはピンク/バイオレット*ダウン -- 第二に、HAがチャートにHAを描かなければならないとき、LENGTH -- そのHAの長さがある。 --- 第三に、Uターンに近づいたとき、HAバーはどんどん短くなる。 試行錯誤の結果、HAバーの長さが0.4cmより短くなったら、黒で描く(つまり青やピンクではない)ことにする。 そうすると、NOT TO ENTERの警告が出て、すぐに終了する。 この方法では、HAのトレンドの強さに従って(恐れることなく)エントリーすればよいのです --- ちょうど私の他のアイデアのように、非常にシンプルで非常に便利です。 フォーラムで[SEARCH]を押して、henki ashiと入力し、すべてのコードを含むいくつかのMQ4を検索してください。 ------ 完成したら、あるいは3色から4色に変更したら(4色より3色の方がいいかもしれない)、PMプライベートメッセージを送ってください。 もし必要なら、黒に変えるベストなタイミングを教えてくれる別のインジケータをお渡しすることもできます。 --------すなわち、私が同封したex4をDOWNLOADすることができますが、別のMQ4 plsを使用してください ---。 ありがとう、それは私達皆のためのよい表示器になる、そしてコーディングはかなり簡単、そしてまっすぐ進むべきである。 コードは上の図と同じように、冒頭にあります。 私の推測が正しければ、g_ibuf_#は、HAバーの長さを制御している。 我々は、"comment "と呼ばれる関数で、すべてのg_ibufの値をプリントアウトしなければならないだけである。 そして、数日間チャートを走らせ、g_ibufの値を見て、それが小さくなったら、その変数の値を記録する。 ヒストグラムのg_ibufがある値より小さくなったら、1色から2色をコーディングします。 そうでなければ、試行錯誤して最適な値(SMALLER THAN)を見つけるしかないでしょう。 本当に xx3xxx -- 私はそこにバージョン4用の私のMQ4をアップロードし、私はあなたがこれを使用することが できると思います、これは私が持っている他のHAよりも長く、厚いようです。 ファイル: 4x_2011_xard_ha-alert_v4.mq4 4 kb jake8055 2011.10.16 16:00 #128 William Snyder 2011.10.17 00:17 #129 ファイル: lsma_nrp.mq4 5 kb chuckee 2011.10.20 20:51 #130 Trixインジケータは、アラートが必要です。 Coder Guruまたは他の方、このTrixインジケーターで、長期または短期のTrixラインの色が赤から緑、またはその逆に変わるたびに、音、通知アラート、t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e メール警告をプログラムできませんか?ありがとうございます。 ファイル: t3_trix_x2roc_clr_nrp_mtf.mq4 9 kb 1...67891011121314151617181920...786 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
クイックEA改造
こんにちは。
以下のコードを変更しようとしたのですが、EAがMT4をクラッシュさせ続けてしまうので、助けが必要です。
私は、現在のバー(つまり注文が実行されたバー)が閉じられたときに注文を閉じたい。基本的に1つのバーを取引します。
これはオリジナルのコードで、シグナルからシグナルへトレードします。
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
//if (timeprev!=Time[0]){
// timeprev = Time[0];
if (signalup!=EMPTY_VALUE&&signalup!=0)
{
Order = SIGNAL_BUY;
}
if (signaldown!=EMPTY_VALUE&&signaldown!=0){
Order = SIGNAL_SELL;
}
// }
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+どなたか助けていただけませんか?
助けてください!!!!!!
次のような機能を持つEAが必要です。
ある時間帯に4枚の買い注文 または売り 注文を設定する。
関数。
注文は時間(変数00から24まで)を開く
order1 sell or buy lot (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
注文2 ロットの売りまたは買い (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
order3 ロットの売り買い (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
order4 売りまたは買いロット (0.01 .0,02... 1) TP (+ xx pips from oppen) SL (- xx pips from open)
ありがとうございます
私のEAに、ある価格水準でそれを無効にするコードを追加する必要があります。
こんにちは。
私のEAに、ある価格水準でEAを無効にしたり有効にしたりするコードを追加する必要があります。
私は検索して、私はそれを行うことができることを発見しました。
# iclude<WinUser32mqh
extern bool Disable Ea = true // X (examply1.4420) から Y (examply1.4380) までと Z (examply1.4480) から N (examply1.4520) まで // を無効にする。
extern bool Enable Ea = true // R(examply -1.4420) から T(examply -1.4480) まで。
これらの条件をコードに変換して、EAのダイアログボックスで、EAを無効/有効にするための価格レベルを入力できるようにしていただけると助かります。
いろいろ調べてみると、EAの起動関数に コードを書いておくと、ある条件で起動することがわかりました。
そこで、エキスパート開始関数の下に以下のように書きました。
if(PRICE_MEDIAN (SellLevel-Point*BufferPips))
return (0)
------------------------------------------------------------------------------------------------------------------
BufferPipsは、ダイアログボックスで値を変更できるように、extern doubleで追加しました。
PRICE_MEDIANが良い選択かどうかはわかりません。
私は、コンパイルエラー - 不均衡な左括弧を取得しています。
助けてください。
ヘルプミーオートトレード
こんにちは、Mr.Guru!
自動売買をやっているのですが、動きません。
マリオさん、こんにちは。
この条件if(current_shortEma == current_longEma) は決して真ではないと思います。
通常、クロスを検出するためには、次のようにする必要があります。
if(current_shortEma > current_longEma && last_shortEma < last_longEma){ //cross bottom.
//下からのクロス
}
if(current_shortEma last_longEma){ //cross from the top }.
//上からクロス
}
より詳細な情報はこちら
https://www.mql5.com/en/forum/trading_systems
ありがとうございます。
ミハイル
私もコーディングの依頼を受けました ---- コーダーが必要です (とても簡単な作業です)
私たちはHAを知っている -- 足し算はめったに間違いではない
コンソリデーションや、Uターンしそうなときは、どんどん短くなる。
一方、トレンドがまだ強いとき、そのバーのHAはLONGになる。
というわけで
トレンドの強さを教えてくれるインジケータがあればいいのですが。
アイデアは簡単です。
--- まず、どんなHAでも良いので(ex4は同封したが、MQ4はHA用)、それを修正する(簡単な作業だと思う)。
HAの色は2色しかない、1つはブルー*アップ ---- + ----、1つはピンク/バイオレット*ダウン
-- 第二に、HAがチャートにHAを描かなければならないとき、LENGTH -- そのHAの長さがある。
--- 第三に、Uターンに近づいたとき、HAバーはどんどん短くなる。
試行錯誤の結果、HAバーの長さが0.4cmより短くなったら、黒で描く(つまり青やピンクではない)ことにする。
そうすると、NOT TO ENTERの警告が出て、すぐに終了する。
この方法では、HAのトレンドの強さに従って(恐れることなく)エントリーすればよいのです --- ちょうど私の他のアイデアのように、非常にシンプルで非常に便利です。
フォーラムで[SEARCH]を押して、henki ashiと入力し、すべてのコードを含むいくつかのMQ4を検索してください。
------
完成したら、あるいは3色から4色に変更したら(4色より3色の方がいいかもしれない)、PMプライベートメッセージを送ってください。
もし必要なら、黒に変えるベストなタイミングを教えてくれる別のインジケータをお渡しすることもできます。
--------すなわち、私が同封したex4をDOWNLOADすることができますが、別のMQ4 plsを使用してください ---。
ありがとう、それは私達皆のためのよい表示器になる、そしてコーディングはかなり簡単、そしてまっすぐ進むべきである。
コードは上の図と同じように、冒頭にあります。
私の推測が正しければ、g_ibuf_#は、HAバーの長さを制御している。
我々は、"comment "と呼ばれる関数で、すべてのg_ibufの値をプリントアウトしなければならないだけである。
そして、数日間チャートを走らせ、g_ibufの値を見て、それが小さくなったら、その変数の値を記録する。
ヒストグラムのg_ibufがある値より小さくなったら、1色から2色をコーディングします。
そうでなければ、試行錯誤して最適な値(SMALLER THAN)を見つけるしかないでしょう。
本当に
xx3xxx -- 私はそこにバージョン4用の私のMQ4をアップロードし、私はあなたがこれを使用することが できると思います、これは私が持っている他のHAよりも長く、厚いようです。
Trixインジケータは、アラートが必要です。
Coder Guruまたは他の方、このTrixインジケーターで、長期または短期のTrixラインの色が赤から緑、またはその逆に変わるたびに、音、通知アラート、t3_trix_x2roc_clr_nrp_mtf.mq4t3_trix_x2roc_clr_nrp_mtf.mq4e メール警告をプログラムできませんか?ありがとうございます。