コーディングの方法は? - ページ 110 1...103104105106107108109110111112113114115116117...347 新しいコメント CodeMuncher 2008.07.23 21:05 #1091 こんにちは。 あなたの技を学び、私の技をお見せするのを楽しみにしています。 削除済み 2008.07.24 02:29 #1092 CodeMuncher: こんにちは、私はあなたのトリックを学び、あなたに私のトリックを示すことを楽しみにしています。 このフォーラムでは、素晴らしいものがたくさん見つかります。 読んで、検索機能を無制限に使ってください!!! 何でも気軽に質問してください ...多くの素晴らしい貢献者/ヘルパーがここにいます。 FerruFx RonaldRaygun 2008.07.24 11:01 #1093 fireslayer26: このコードでは、トレーリングストップが45pipsに設定されています。しかし、トレーリングストップは45ピップス動くまで有効にならないようです。トレードが行われたときにトレーリングストップが有効になるようにするには、どのように変更する必要がありますか? extern string Remark1 = "== Main Settings =="; extern int MagicNumber = 0; extern bool SignalMail = False; extern bool EachTickMode = true; extern double Lots = 4; extern int Slippage = 2; extern bool UseStopLoss = false; extern int StopLoss = 100; extern bool UseTakeProfit = false; extern int TakeProfit = 15; extern bool UseTrailingStop = true; extern int TrailingStop = 45; extern bool MoveStopOnce = False; extern int MoveStopWhenPrice = 50; extern int MoveStopTo = 1; extern int MaxConcurrentTrades = 2; //Version 2.01 int BarCount; int Current; bool TickCheck = False; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { BarCount = Bars; if (EachTickMode) Current = 0; else Current = 1; return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int Order = SIGNAL_NONE; int Total, Ticket; double StopLossLevel, TakeProfitLevel; if (EachTickMode && Bars != BarCount) TickCheck = False; Total = OrdersTotal(); Order = SIGNAL_NONE; //+------------------------------------------------------------------+ //| Variable Begin | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Variable End | //+------------------------------------------------------------------+ //Check position bool IsTrade = False; for (int i = 0; i < Total; i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { IsTrade = True; if(OrderType() == OP_BUY) { //Close //+------------------------------------------------------------------+ //| Signal Begin(Exit Buy) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) { if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(Bid - OrderStopLoss() > 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) | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 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; } //MoveOnce if(MoveStopOnce && MoveStopWhenPrice > 0) { if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) { if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) { OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red); if (!EachTickMode) BarCount = Bars; continue; } } } //Trailing stop if(UseTrailingStop && TrailingStop > 0) { if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) { if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange); if (!EachTickMode) BarCount = Bars; continue; } } } } } } 赤色で 変更 削除済み 2008.07.24 15:12 #1094 赤で示した変更を行ったのですが、今、EAが動作したくないようです。EAを全部投稿しますので、見てみてください。 ありがとうございます。 ファイル: williams_ea.mq4 12 kb RonaldRaygun 2008.07.24 15:15 #1095 orderstoplossの後に()があることを確認してください。 削除済み 2008.07.24 15:28 #1096 かっこいい!やったね このインジケーターはどうだろう...。 このインジケータを改造して、価格の開き方によって色を変えて表示させることはできないでしょうか?例えば、前のバーより高く始まったら緑色、低く始まったら赤色、同じなら黄色、みたいな?これらの色は選択可能ですか?また、6本だけでなく、10本のオープニングを表示するように拡張することは可能でしょうか? また、先日修正したEAで、「Pips to Activate Trailing Stop」のような入力設定はどのようにすればいいのでしょうか?別のEAでやっているのですが、どのようにコーディングすればいいのかわかりません。 ファイル: period_open.mq4 23 kb RonaldRaygun 2008.07.25 14:47 #1097 オーダーコメント() オーダーチケット() 注文ロット() オーダーストップロス() オーダーテイクプロフィット() オーダーオープンタイム() これらはすべて、潜在的な注文フィルタリングツールです。 これらの特定の取引について、他にどのような特徴があるのでしょうか? hiachiever 2008.07.25 20:51 #1098 Ronald Raygun: OrderComment()オーダーチケット() オーダーロット() オーダーストップロス(OrderStopLoss) オーダーテイクプロフィット() オーダーオープンタイム() これらはすべて、潜在的な注文のフィルタリング・ツールです。 そのほか、具体的にどのようなトレードが特徴的なのでしょうか? 注文のフィルタリングに最も重要なのは、OrderSymbol() と OrderMagicNumber() の 2 つです。もうひとつは、OrderComment()です。 メタエディタにこれらのいずれかを入力し、asndという単語をクリックしてからF1を押すのが最も良い方法です。そうすると、ヘルプが表示され、すべてのオーダー関数が リストアップされます。 それでは、よいプログラミングを。 Hiachiever MrPip 2008.07.25 21:43 #1099 OrderComment の使用 OrderComment()を使って取引を特定するときは、注意が必要です。ブローカーがコメントに文字を追加してくることがあります。 そのため、以下のように使用するのがベストです。 if (StringFind(OrderComment(), UserComment, 0) > 0) を使用します。 { // UserCommentで特定された注文がOrderCommentで見つかりました。 } の代わりに if (OrderComment() == UserComment) { // 注文はUserCommentで特定されるかもしれない // もしOrderCommentがブローカーによって変更されなかったら } ロバート MiniMe 2008.07.26 00:31 #1100 ビークイーンでのクローズトレード .............. 1...103104105106107108109110111112113114115116117...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
あなたの技を学び、私の技をお見せするのを楽しみにしています。
こんにちは、私はあなたのトリックを学び、あなたに私のトリックを示すことを楽しみにしています。
このフォーラムでは、素晴らしいものがたくさん見つかります。
読んで、検索機能を無制限に使ってください!!!
何でも気軽に質問してください ...多くの素晴らしい貢献者/ヘルパーがここにいます。
FerruFx
このコードでは、トレーリングストップが45pipsに設定されています。しかし、トレーリングストップは45ピップス動くまで有効にならないようです。トレードが行われたときにトレーリングストップが有効になるようにするには、どのように変更する必要がありますか?
extern string Remark1 = "== Main Settings ==";
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = true;
extern double Lots = 4;
extern int Slippage = 2;
extern bool UseStopLoss = false;
extern int StopLoss = 100;
extern bool UseTakeProfit = false;
extern int TakeProfit = 15;
extern bool UseTrailingStop = true;
extern int TrailingStop = 45;
extern bool MoveStopOnce = False;
extern int MoveStopWhenPrice = 50;
extern int MoveStopTo = 1;
extern int MaxConcurrentTrades = 2;
//Version 2.01
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 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;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderStopLoss() > 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) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 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;
}
//MoveOnce
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(OrderOpenPrice() - Ask >= Point * MoveStopWhenPrice) {
if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo) {
OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(((OrderStopLoss - Ask) > (Point * TrailingStop)) || OrderStopLoss() == 0) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
赤色で 変更
赤で示した変更を行ったのですが、今、EAが動作したくないようです。EAを全部投稿しますので、見てみてください。 ありがとうございます。
orderstoplossの後に()があることを確認してください。
かっこいい!やったね
このインジケーターはどうだろう...。
このインジケータを改造して、価格の開き方によって色を変えて表示させることはできないでしょうか?例えば、前のバーより高く始まったら緑色、低く始まったら赤色、同じなら黄色、みたいな?これらの色は選択可能ですか?また、6本だけでなく、10本のオープニングを表示するように拡張することは可能でしょうか?
また、先日修正したEAで、「Pips to Activate Trailing Stop」のような入力設定はどのようにすればいいのでしょうか?別のEAでやっているのですが、どのようにコーディングすればいいのかわかりません。
オーダーコメント()
オーダーチケット()
注文ロット()
オーダーストップロス()
オーダーテイクプロフィット()
オーダーオープンタイム()
これらはすべて、潜在的な注文フィルタリングツールです。
これらの特定の取引について、他にどのような特徴があるのでしょうか?
OrderComment()
オーダーチケット()
オーダーロット()
オーダーストップロス(OrderStopLoss)
オーダーテイクプロフィット()
オーダーオープンタイム()
これらはすべて、潜在的な注文のフィルタリング・ツールです。
そのほか、具体的にどのようなトレードが特徴的なのでしょうか?注文のフィルタリングに最も重要なのは、OrderSymbol() と OrderMagicNumber() の 2 つです。もうひとつは、OrderComment()です。
メタエディタにこれらのいずれかを入力し、asndという単語をクリックしてからF1を押すのが最も良い方法です。そうすると、ヘルプが表示され、すべてのオーダー関数が リストアップされます。
それでは、よいプログラミングを。
Hiachiever
OrderComment の使用
OrderComment()を使って取引を特定するときは、注意が必要です。ブローカーがコメントに文字を追加してくることがあります。
そのため、以下のように使用するのがベストです。
if (StringFind(OrderComment(), UserComment, 0) > 0) を使用します。
{
// UserCommentで特定された注文がOrderCommentで見つかりました。
}
の代わりに
if (OrderComment() == UserComment)
{
// 注文はUserCommentで特定されるかもしれない
// もしOrderCommentがブローカーによって変更されなかったら
}
ロバート
ビークイーンでのクローズトレード
..............