EAとインジケータの売買 - ページ 4 1234567891011...13 新しいコメント Sergey Golubev 2008.06.16 17:28 #31 cifox: こんにちは、マスターズさん......、ある時間に買いまたは売りをオープンするEAを作るのを手伝ってくれませんか? あなたの投稿をここに移動しました。 このスレッドを最初の投稿から読むと、いくつかのEAが見つかると思います。 削除済み 2008.06.19 07:08 #32 1日に売り買い1回ずつしか開けない!? こんにちは、皆さん。 私のEAには少し問題があります。それは、価格の動きに基づいており、一日の間に複数のポジションを開くことができます。私はこれを制限したいのですが、どうすればいいのか分かりませんでした。 私がしたいことは次のようなものです。 もし、その日にすでに買いポジションを持ったなら、他の買いポジションを持たないでください。しかし、もし売りシグナルを 見つけたら、売りシグナルをオープンする。この場合、この後、別の売りシグナルを見つけたら、他の売りポジションを建てないでください。 この書き方と正しいポジションがわかりません。助けていただけますか? どうもありがとうございます! よろしくお願いします。 マウロ EDIT。 別のトピックでは、私はこのコードを見つけたが、私はどこで、どのようにそれを添付するのか分からない。 if(OrderSelect(1, SELECT_BY_POS)==true) { if(TimeToStr(OrderOpenTime(),TIME_DATE ) != TimeToStr(CurTime(),TIME_DATE )) { //open new order } } 削除済み 2008.06.19 08:06 #33 このトピックでは、私が探しているものについては何もありません...このトピックは、同時に購入と販売についてです...しかし、私が話していることは、私がすでに買い注文を開いている場合、私のEAが日中は新しい買い注文を開いていないことです。同じことは、それがすでに売り 注文を開いている場合。 しかし、もし買い注文を出したら、日中は上に書いたルールに従って売り注文しか出せない。 例 時刻は今日 EAが買い注文を出した。 そのポジションはTakeProfitまたはStopLossに達したので、決済されます。 次に、EAは別の買いシグナルを見ることができますが、前の時間にすでに買い注文を出しているため、この注文を出しません。 次にEAは売りシグナルを確認し、まだ売り注文を出していないことを確認し、売りポジションを建てます。 このポジションはTakeProfitまたはStopLossに達したので、決済されます。 今、EAは別の売りシグナルを見ることができますが、すでに前の時間に売り注文を開いていることを見て、この注文を開きません。 これは私が探しているものです...。 Sergey Golubev 2008.06.19 08:20 #34 この場合、この2つのスレッドが必要です。 https://www.mql5.com/en/forum/176322 https://www.mql5.com/en/forum/173026 削除済み 2008.06.19 09:00 #35 OK、NewDigitalの返信ありがとうございます。さて、私のコードはこうだと思います。 if (TimeDayOfYear(TimeCurrent())!=DayOfLastTrade) { ticket=OrderSend(.... DayOfLastTrade=(TimeDayOfYear(TimeCurrent()); } [/CODE] So, can you check if I have added this code in the right way on my code?Here it is [CODE]if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) { if(!IsTrade) { //Check free margin if (AccountFreeMargin() < (1000 * 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; if (TimeDayOfYear(TimeCurrent())!=DayOfLastTrade) { Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue); DayOfLastTrade=(TimeDayOfYear(TimeCurrent()); } 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についてのコードに同じことをすれば、それは唯一の売りポジションを開くべきである、そうですか? ご教授ありがとうございます。 マウロ コーディングの方法は? Experts: exad... Buy/sell EAs and indicators 削除済み 2008.06.19 13:21 #36 MMM...Metaeditorがエラーがあると言っている...。 '\end_of_program' - unbalanced left parenthesis (259, 1) Sergey Golubev 2008.06.19 13:27 #37 ということは、この {[/CODE] and [CODE]} はアンバランスです。 コードで確認してみて ください。 すみません、私はコーダーではないので、あまりお役に立てません。 削除済み 2008.06.20 06:45 #38 こんにちは、newdigitalです...はい、ファレンテシスは知っています...しかし、私はすべてのコードをチェック し、ファレンテシスはバランスをとっています... しかし、私はすべてのコードをチェックし、ファレンテシスはバランスされています...うーん...私はどこに問題があるのか理解できません...しかし、私はチェックを続けます...私は解決策を見つけることを望みます ありがとうございました。 マウロ Sergey Golubev 2008.06.20 06:52 #39 例えばこれ。 DayOfLastTrade=(TimeDayOfYear(TimeCurrent()); luxinterior 2008.06.20 06:53 #40 MT4のデバッグは面倒ですが、根気よくやれば問題は解決します。 まず最初に言えることは、MT4が問題だと言っているところは...問題ではありません!次に私がすることは、問題を引き起こしている可能性の高い複雑なIF文の中の膨大なコードの塊をカットし始めることです。 例えば... if(){ //second if if(){ //third if if(){ } } } 2番目と3番目のIFを削除して、1番目のIFだけを残します。コンパイルできたら、原因を絞り込むことができます。次に2と3を貼り付けて、3を削除し、もう一度テストします。これを数分続ければ、最終的に問題が見つかるでしょう。 がんばってください。 LUx 1234567891011...13 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは、マスターズさん......、ある時間に買いまたは売りをオープンするEAを作るのを手伝ってくれませんか?
あなたの投稿をここに移動しました。
このスレッドを最初の投稿から読むと、いくつかのEAが見つかると思います。
1日に売り買い1回ずつしか開けない!?
こんにちは、皆さん。
私のEAには少し問題があります。それは、価格の動きに基づいており、一日の間に複数のポジションを開くことができます。私はこれを制限したいのですが、どうすればいいのか分かりませんでした。
私がしたいことは次のようなものです。
もし、その日にすでに買いポジションを持ったなら、他の買いポジションを持たないでください。しかし、もし売りシグナルを 見つけたら、売りシグナルをオープンする。この場合、この後、別の売りシグナルを見つけたら、他の売りポジションを建てないでください。
この書き方と正しいポジションがわかりません。助けていただけますか?
どうもありがとうございます!
よろしくお願いします。
マウロ
EDIT。
別のトピックでは、私はこのコードを見つけたが、私はどこで、どのようにそれを添付するのか分からない。
{
if(TimeToStr(OrderOpenTime(),TIME_DATE ) != TimeToStr(CurTime(),TIME_DATE ))
{
//open new order
}
}このトピックでは、私が探しているものについては何もありません...このトピックは、同時に購入と販売についてです...しかし、私が話していることは、私がすでに買い注文を開いている場合、私のEAが日中は新しい買い注文を開いていないことです。同じことは、それがすでに売り 注文を開いている場合。
しかし、もし買い注文を出したら、日中は上に書いたルールに従って売り注文しか出せない。
例
時刻は今日
EAが買い注文を出した。
そのポジションはTakeProfitまたはStopLossに達したので、決済されます。
次に、EAは別の買いシグナルを見ることができますが、前の時間にすでに買い注文を出しているため、この注文を出しません。
次にEAは売りシグナルを確認し、まだ売り注文を出していないことを確認し、売りポジションを建てます。
このポジションはTakeProfitまたはStopLossに達したので、決済されます。
今、EAは別の売りシグナルを見ることができますが、すでに前の時間に売り注文を開いていることを見て、この注文を開きません。
これは私が探しているものです...。
この場合、この2つのスレッドが必要です。
https://www.mql5.com/en/forum/176322
https://www.mql5.com/en/forum/173026
OK、NewDigitalの返信ありがとうございます。さて、私のコードはこうだと思います。
{
ticket=OrderSend(....
DayOfLastTrade=(TimeDayOfYear(TimeCurrent());
}
[/CODE]
So, can you check if I have added this code in the right way on my code?Here it is
[CODE]if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * 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;
if (TimeDayOfYear(TimeCurrent())!=DayOfLastTrade)
{
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue);
DayOfLastTrade=(TimeDayOfYear(TimeCurrent());
}
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についてのコードに同じことをすれば、それは唯一の売りポジションを開くべきである、そうですか?
ご教授ありがとうございます。
マウロ
MMM...Metaeditorがエラーがあると言っている...。
ということは、この
and
[CODE]}はアンバランスです。
コードで確認してみて ください。
すみません、私はコーダーではないので、あまりお役に立てません。
こんにちは、newdigitalです...はい、ファレンテシスは知っています...しかし、私はすべてのコードをチェック し、ファレンテシスはバランスをとっています...
しかし、私はすべてのコードをチェックし、ファレンテシスはバランスされています...うーん...私はどこに問題があるのか理解できません...しかし、私はチェックを続けます...私は解決策を見つけることを望みます
ありがとうございました。
マウロ
例えばこれ。
MT4のデバッグは面倒ですが、根気よくやれば問題は解決します。
まず最初に言えることは、MT4が問題だと言っているところは...問題ではありません!次に私がすることは、問題を引き起こしている可能性の高い複雑なIF文の中の膨大なコードの塊をカットし始めることです。
例えば...
if(){
//second if
if(){
//third if
if(){
}
}
}
2番目と3番目のIFを削除して、1番目のIFだけを残します。コンパイルできたら、原因を絞り込むことができます。次に2と3を貼り付けて、3を削除し、もう一度テストします。これを数分続ければ、最終的に問題が見つかるでしょう。
がんばってください。
LUx