アスク! - ページ 29 1...222324252627282930313233343536...182 新しいコメント iscuba11 2006.08.30 02:48 #281 Yannis: デイブ以下のコードに変更してみて、うまくいったかどうか教えてください。Yannisint i=0;for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)OrderSelect(i, SELECT_BY_POS, MODE_TRADES);if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() &&( OrderMagicNumber () == MagicNumber || MagicNumber==0)){OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。return(0);}if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() &&( OrderMagicNumber () == MagicNumber || MagicNumber==0)){OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。return(0);}return(0);}} バックテスターのトレードをいつも何度も修正してしまうので困っています。どうすれば一度だけトレードを修正するようになりますか?プログラムはスリープしてしまうので、修正する必要があるのはまだ開いている取引だけです。 バックテストの結果を添付した.Gifをご覧ください。もう少しでうまくいきそうなのですが、アドバイスをお願いします。私はこのTake Profitと Stop Lossの変更をスリープモードと組み合わせて使用しています。以下のコードをご覧ください。 int start() { if (UseHourTrade) { int a=0; int b=0; int c=0; if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1; if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。 if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。 if(a==1 && b==1 && c==1) { コメント( "ⅷ"," * 太陽風専門アドバイザー *", "\n", "Ⅻ", " - PROGRAM IN SLEEP CYCLE - ", "\n", "Ⅾ","Ⅾ", "非運営時間!<"); ///////////////////スリープ開始時に損切りと利益確定を行うように変更する。 int h=0; for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--) OrderSelect(h, SELECT_BY_POS, MODE_TRADES); if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } return(0); } デイブ <<< 添付のサムネイルをご覧ください ファイル: modifying_sl_and_tp_on_open_trades..gif 60 kb Ask! 出口戦略ステップ・ストップとトレーリング・ストップの比較 10ポイント 3.mq4 phoenix 2006.08.30 03:01 #282 for (intcnt1=OrdersTotal()-1;cnt1>=0;cnt1--) OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES); 同じ数をカウントするようにする iscuba11 2006.08.30 03:01 #283 理解できません。 どうすればこのエラーを修正できますか? 多分、私は参照してください - 私はcnt1をhに変更してみましょう私は正しいですか? デイブ << iscuba11 2006.08.30 03:10 #284 phoenix: あなたのOrderSelect()は、実行中のループに基づくカウントをしませんでした。 int start() { if (UseHourTrade) { int a=0; int b=0; int c=0; if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1; if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。 if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。 if(a==1 && b==1 && c==1) { コメント( "ⅷ"," * 太陽風専門アドバイザー *", "\n", "Ⅻ", " - PROGRAM IN SLEEP CYCLE - ", "\n", "Ⅾ","Ⅾ", "非運営時間!<"); スリープ開始時に損切りと利益 確定を行う /////////////////////////////////////////// //int h=0; for (int h=OrdersTotal()-1;h>=0;h--) OrderSelect(h, SELECT_BY_POS, MODE_TRADES); if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } return(0); } 変更を行ったのですが、1回の変更に対して、まだ変更のループが続いています。 またアドバイスをお願いします。 デイブ <<< Ask! 出口戦略ステップ・ストップとトレーリング・ストップの比較 10ポイント 3.mq4 削除済み 2006.08.30 03:20 #285 コードは [PHP][/PHP] コード内で投稿してください。フォーマットされたコードの 方が読みやすく、デバッグもしやすくなります。 solaris 2006.08.30 03:26 #286 インジケーター入力タブ インジケータをチャートに貼り付けたとき、Input Tabが表示されないようにするには、どこでどのようにコーディングすればよいですか? ありがとうございます。 ソラリス phoenix 2006.08.30 03:31 #287 iscuba11: int start(){ if (UseHourTrade) { int a=0; int b=0; int c=0; if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1; if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。 if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。 if(a==1 && b==1 && c==1) { コメント( "ⅷ"," * 太陽風専門アドバイザー *", "\n", "Ⅻ", " - PROGRAM IN SLEEP CYCLE - ", "\n", "Ⅾ","Ⅾ", "非運営時間!<"); スリープ開始時に損切りと利益確定を行う /////////////////////////////////////////// //int h=0; for (int h=OrdersTotal()-1;h>=0;h--) OrderSelect(h, SELECT_BY_POS, MODE_TRADES); if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) {if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 ) OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0)) { if( OrderStopLoss() < Bid - Point * 15 ) OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。 return(0); } return(0); } 変更を行ったのですが、1回の変更に対して、まだ変更のループが続いています。 またアドバイスをお願いします。 デイブ <<< 紫の行を追加してください ...役に立つかもしれません phoenix 2006.08.30 03:34 #288 solaris: インジケータをチャートに貼り付けたとき、Input Tabが表示されないようにするには、どこでどのようにコーディングすればよいですか? ありがとうございます。 ソラリス テンプレートとして保存しておけば、新しいチャートにインジケータを呼び出すときに、パラメータを 設定する必要がありません。 iscuba11 2006.08.30 03:47 #289 ご指摘の通りにしました! (ご迷惑をおかけしました) for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--) OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES)を実行しました。 しかし、私はまだ以前のように単一の取引で大規模なループの修正を取得しています!**。 ロジックの中でループの中にループがあるのは明らかです。Dave << 最新のバックテスト 結果をご覧ください。 ロゴ.htmを削除することができません。 ファイル: backtester_results_with_modifications.gif 55 kb phoenix 2006.08.30 03:50 #290 iscuba11: ご指摘の通りやってみました! (ご迷惑をおかけしました)for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--) OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES); しかし、私はまだ以前のように単一の取引で大規模なループの修正を取得しています!**。 明らかにループの中にループがあるロジックになっていますねDave << 最新のバックテスト結果をご覧ください。 ロゴ.htmを失礼します - 取り除けません。 上の紫を追加してみましたか? theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 ) ) そしてif( OrderStopLoss() < Bid - Point * 15 ) 1...222324252627282930313233343536...182 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
デイブ
以下のコードに変更してみて、うまくいったかどうか教えてください。
Yannis
int i=0;
for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() &&( OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() &&( OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
return(0);
}
}バックテスターのトレードをいつも何度も修正してしまうので困っています。どうすれば一度だけトレードを修正するようになりますか?プログラムはスリープしてしまうので、修正する必要があるのはまだ開いている取引だけです。
バックテストの結果を添付した.Gifをご覧ください。もう少しでうまくいきそうなのですが、アドバイスをお願いします。私はこのTake Profitと Stop Lossの変更をスリープモードと組み合わせて使用しています。以下のコードをご覧ください。
int start()
{
if (UseHourTrade)
{
int a=0;
int b=0;
int c=0;
if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;
if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。
if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。
if(a==1 && b==1 && c==1)
{
コメント(
"ⅷ"," * 太陽風専門アドバイザー *",
"\n",
"Ⅻ", " - PROGRAM IN SLEEP CYCLE - ",
"\n",
"Ⅾ","Ⅾ", "非運営時間!<");
///////////////////スリープ開始時に損切りと利益確定を行うように変更する。
int h=0;
for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)
OrderSelect(h, SELECT_BY_POS, MODE_TRADES);
if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
return(0);
}
添付のサムネイルをご覧ください
for (intcnt1=OrdersTotal()-1;cnt1>=0;cnt1--)
OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);
同じ数をカウントするようにする
理解できません。 どうすればこのエラーを修正できますか? 多分、私は参照してください - 私はcnt1をhに変更してみましょう私は正しいですか?
デイブ
<<
あなたのOrderSelect()は、実行中のループに基づくカウントをしませんでした。
int start()
{
if (UseHourTrade)
{
int a=0;
int b=0;
int c=0;
if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;
if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。
if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。
if(a==1 && b==1 && c==1)
{
コメント(
"ⅷ"," * 太陽風専門アドバイザー *",
"\n",
"Ⅻ", " - PROGRAM IN SLEEP CYCLE - ",
"\n",
"Ⅾ","Ⅾ", "非運営時間!<");
スリープ開始時に損切りと利益 確定を行う ///////////////////////////////////////////
//int h=0;
for (int h=OrdersTotal()-1;h>=0;h--)
OrderSelect(h, SELECT_BY_POS, MODE_TRADES);
if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
return(0);
}
変更を行ったのですが、1回の変更に対して、まだ変更のループが続いています。
またアドバイスをお願いします。
デイブ
<<<
コードは [PHP][/PHP] コード内で投稿してください。フォーマットされたコードの 方が読みやすく、デバッグもしやすくなります。
インジケーター入力タブ
インジケータをチャートに貼り付けたとき、Input Tabが表示されないようにするには、どこでどのようにコーディングすればよいですか?
ありがとうございます。
ソラリス
int start()
{
if (UseHourTrade)
{
int a=0;
int b=0;
int c=0;
if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;
if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2))b=1.のようになります。
if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3))c=1.となります。
if(a==1 && b==1 && c==1)
{
コメント(
"ⅷ"," * 太陽風専門アドバイザー *",
"\n",
"Ⅻ", " - PROGRAM IN SLEEP CYCLE - ",
"\n",
"Ⅾ","Ⅾ", "非運営時間!<");
スリープ開始時に損切りと利益確定を行う ///////////////////////////////////////////
//int h=0;
for (int h=OrdersTotal()-1;h>=0;h--)
OrderSelect(h, SELECT_BY_POS, MODE_TRADES);
if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))
{
if( OrderStopLoss() < Bid - Point * 15 )
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //ストップロスとテイクプロフィットを変更する。
return(0);
}
return(0);
}
変更を行ったのですが、1回の変更に対して、まだ変更のループが続いています。
またアドバイスをお願いします。
デイブ
<<<紫の行を追加してください ...役に立つかもしれません
インジケータをチャートに貼り付けたとき、Input Tabが表示されないようにするには、どこでどのようにコーディングすればよいですか?
ありがとうございます。
ソラリステンプレートとして保存しておけば、新しいチャートにインジケータを呼び出すときに、パラメータを 設定する必要がありません。
ご指摘の通りにしました! (ご迷惑をおかけしました)
for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)
OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES)を実行しました。
しかし、私はまだ以前のように単一の取引で大規模なループの修正を取得しています!**。
Dave
<<最新のバックテスト 結果をご覧ください。 ロゴ.htmを削除することができません。
ご指摘の通りやってみました! (ご迷惑をおかけしました)
for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)
OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);
しかし、私はまだ以前のように単一の取引で大規模なループの修正を取得しています!**。
Dave
<<上の紫を追加してみましたか?
theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 ) )
そしてif( OrderStopLoss() < Bid - Point * 15 )