[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 69 1...626364656667686970717273747576...537 新しいコメント Артур 2011.02.07 10:11 #681 どなたか、私の前の投稿(67ページ)を見てください。エラーが見つかりません -保留注文が 設定されていません。 gince 2011.02.07 10:14 #682 nemo811: どなたか、私の前の投稿(67ページ)を見てください。エラーが見つかりません - 保留注文が設定されていません。 間違いではありません。もっと気をつけたほうがいい。 #property copyright "Copyright © 2010, Хлыстов Владимир" #property link "cmillion@narod.ru" #property show_inputs //-------------------------------------------------------------------- extern int stoploss = 0; //уровень выставления SL, если 0, то SL не выставляется extern int takeprofit = 0; //уровень выставления TP, если 0, то TP не выставляется extern int Magic = 123456; //уникальный номер ордера extern bool BUY = false; //открыть ордер BUY extern bool SELL = false; //открыть ордер SELL extern bool BUYSTOP = false; //открыть ордер BUYSTOP extern bool SELLSTOP = false; //открыть ордер SELLSTOP extern double Lot = 0.1; //объем ордера extern int slippage = 3; //Максимально допустимое отклонение цены для рыночных ордеров //-------------------------------------------------------------------- double SL,TP; //-------------------------------------------------------------------- int start() { if (BUY) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy"); } if (SELL) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell"); } if (BUYSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Stop"); } if (SELLSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Stop"); } return(0); } //-------------------------------------------------------------------- void OPENORDER(string ord) { int error,err; while (true) { error=true; if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"BUY",Magic,0,Blue); if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"SELL",Magic,0,Red); if (ord=="BuyStop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask,Digits),SL,TP,"BUYSTOP",Magic,0,Blue); if (ord=="SellStop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid,Digits),SL,TP,"SELLSTOP",Magic,0,Red); if (error==-1) //неудачная покупка OK { ShowERROR(); err++;Sleep(2000);RefreshRates(); } if (error || err >10) return; } return; } //-------------------------------------------------------------------- void ShowERROR() { int err=GetLastError(); switch ( err ) { case 1: return; case 2: Alert("Нет связи с торговым сервером ",Symbol());return; case 3: Alert("Error неправильные параметры ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ",Symbol());return; case 134: Alert("Недостаточно денег ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ",Symbol());return; case 129: Alert("Error Неправильная цена ",Symbol());return; case 131: Alert("Error Неправильный объем ",Symbol());return; case 4200:Alert("Error Объект уже существует ",Symbol());return; default: Alert("Error ",err," ",Symbol());return; } } //-------------------------------------------------------------------- Артур 2011.02.07 10:23 #683 gince:間違いではありません。もっと気をつけなければならないことがある いやいや、そんなことはない。見る記事を間違えていますよ。すぐ下にもあります :)))ご確認いただいたバージョンでは、振り子を設定する現在の価格からの レベル(現在の価格のみ)は指定されていません。ご感想をお寄せいただきありがとうございました。 gince 2011.02.07 11:03 #684 nemo811: いえいえ、そんなことはありません。間違った投稿をご覧になっています。すぐ下にもあります :)))お客様が確認されたバージョンでは、ペンデンティブを設定すべき、現在の価格からのレベルが表示されていません(現在の価格しか表示されていません)。ご感想をお寄せいただきありがとうございました。 OPENORDER()関数の呼び出し、または関数自体に何か問題があるようです。 次のような仕組みになっています。 イフ (BUYSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; int error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); } Артур 2011.02.07 11:13 #685 gince: OPENORDER()関数の呼び出し、または関数自体に何か問題があるようです。 次のような仕組みになっています。 イフ (BUYSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; int error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); } あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ コンピュータの神様!!!もう10回目だよ!なんで動かないんだ!?メインはマーケットオープンです。懸案のものも、まったく同じ原理で書かれている。何が足りないのか?:))))))) atlantic 2011.02.07 11:23 #686 チュートリアルにあるTrailingStopFrCnSAR_v2をExpert Advisorに挿入する方法について教えてください。 注文追跡を無効にして、他のEAが保留中の注文を 出したり、注文を開いたりしたときに動作するようにするにはどうすればよいですか? ファイル: trailingstopfrcnsar_v2.mq4 13 kb tradingexpert.mq4 13 kb Артур 2011.02.07 11:38 #687 ウラヤマシイ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!バグを発見! もし興味がある方がいらっしゃれば、こちらが実用版です。 #property copyright"著作権 © 2010, Khlystov Vladimir". #p roperty link "cmillion@narod.ru" #property show_inputs //-------------------------------------------------------------------- extern int stoploss = 0; //SL露出のレベル、0ならSLは露出しない extern int int takeprofit = 0; //t TPレベル、0ならTP非展示 extern int int Magic = 123456; //注文番号 extern bool BUY = false; //買いの注文を出す extern bool SELL = false; //売りの注文を出す extern bool BUYSTOP = false; //BUYSTOP注文を開始します。 extern bool SELLSTOP = false; //SELLSTOP注文を開始します。 extern double Lot = 0.1; // 注文数量 extern int slippage = 3; //成行注文で許容される最大限の価格偏差 extern int DistanceSet = 20; //市場距離 //-------------------------------------------------------------------- ダブルSL,TP。 //-------------------------------------------------------------------- int start() { なら { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER(以下、「買付」。) } 売ったら { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER(以下、「売り」)。 } イフ (BUYSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER(以下、「バイ・ストップ」という。) } if (SELLSTOP) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER(「売りストップ」)。 } return(0)です。 } //-------------------------------------------------------------------- void OPENORDER(string ord) { int error,err; 内 {error=true。 if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,",Magic,0); if (ord=="Buy Stop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell Stop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,",Magic,0); if (error==-1) //失敗 { ShowERROR()。 err++;Sleep(2000);RefreshRates()。 } if (error || err >10) return; } を返します。 } //-------------------------------------------------------------------- void ShowERROR() { int err=GetLastError(); スイッチ ( err ) { case 1: return; case 2: Alert("No connection to the trade server ",Symbol());リターン。 case 3: Alert("Error incorrect parameters ",Symbol());戻り。 case 130: Alert("Error close Ticket stops ",Symbol());戻り。 case 134: Alert("Not enough money ",Symbol());return。 case 146: Alert("Error Trade Subsystem is busy ",Symbol());戻り。 case 129: Alert("Error Wrong price ",Symbol());戻り。 case 131: Alert("Error Incorrect volume ",Symbol());戻り。 case 4200:Alert("Error Object already exists ",Symbol());return。 default: Alert("Error ",err," ",Symbol());戻り。 } } //-------------------------------------------------------------------- 議論に参加された皆さん、本当にありがとうございました!!!あなたがいなければどこにも行けない!:))))) [Archive!] Any rookie question, 100% Risk Free Margin [WARNING CLOSED!] Any newbie --- 2011.02.07 11:59 #688 nemo811:ウラヤマシイ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!間違いを発見!議論に参加された皆さんに大感謝です!!!!あなたがいなければどこにも行けない!:)))))の場合、コードにエラーがあります。 注意: 保留注文のストップとテイクは、現在の価格からではなく、注文の開始価格から カウントされることに注意してください。 100yan 2011.02.07 12:04 #689 HELP!教えてください、私はポジションの一部を閉じる場合(例えば1ロットの順序、および0.5ロットを閉じる)OrderCloseチケットは変更する必要がありますか?私のテスターではそうなっているのですが...。どうすれば回避できるのか?以下は、クロージングコードの一部です...。 1 2011.01.31 06:57 売り 1 2.55 1.36177 0.00000 0.00000 10000.00 2 2011.01.31 08:10 売り 1 0.51 1.36039 0.00000 0.00000 70.38 10070.38 3 2011.01.31 08:10 売り 2 2.04 1.00000 0.00000 0.00000 10000.3836177 0.00000 0.00000 0.0000 10070.38 4 2011.01.31 08:10 close 2 0.40 1.36038 0.00000 0.00000 55.60 10125.98 5 2011.01.31 08:10 sell 3 1.64 1.36177 0.00000 0.00000 0.00000 10125.98 もう一つの質問:私は私の注文を4つの部分に分割し、Cls_S==trueがトリガーされたときにそれらの各々を閉じたいのです。カウンターを使おうとしたのですが・・・。うまくいかない... どなたか、アイデアを教えてください。 ありがとうございました!!!! if (Tip==1 && ((Cls_S0==true&&TotClS==0)||(Cls_S1==true&TotClS==1) ||(Cls_S2==true&TotClS==2)||(Cls_S3==true&TotClS==3)) // 売り注文が開かれている。 { // そして、それを閉じるための基準がある Alert("Attempting to close 0.2 Lot Sell ",Ticket,".返信待ち..."); RefreshRates(); // データ更新 Ans=OrderClose(Ticket,LotCt,Ask,5)。 if (Ans==true) // うまくいきました :) { TotClS++; Alert ("Closed 0.2 Lot Sell ",Ticket); break; // 閉ループから抜ける } if (Fun_Error(GetLastError())==1) // エラー処理 continue; // Retry return; // start() からの終了 } break; // Exit while [Archive!] Any rookie question, [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. Bill Williamsとその戦略... Виктор 2011.02.07 12:08 #690 gince: フラグ[]バッファの一時的な描画を行いました - それは空です、しかし、なぜですか?私のエラーはどこにあるのでしょうか? どうだろう。セルゲイエフは知っている、正しいようだと言った。また、正しい書き方も見てみたい。 何かを示すように、少し修正しただけです。 - インジケータを別ウィンドウにして、それを元に戻すと - 配列macd[]が宙に浮いていたのをインジケータにし、精度を上げた。 - 複雑な条件を固定して開き、簡単な条件を入れて調整します。 - は、フラグの条件を変更したので、少なくとも動作はします。 そして、徐々に条件を導入していけば、どこにバグがあるのかがすぐに分かるようになります。 ファイル: cross1_2mod2.mq4 5 kb 1...626364656667686970717273747576...537 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どなたか、私の前の投稿(67ページ)を見てください。エラーが見つかりません - 保留注文が設定されていません。
間違いではありません。もっと気をつけたほうがいい。
間違いではありません。もっと気をつけなければならないことがある
いやいや、そんなことはない。見る記事を間違えていますよ。すぐ下にもあります :)))ご確認いただいたバージョンでは、振り子を設定する現在の価格からの レベル(現在の価格のみ)は指定されていません。ご感想をお寄せいただきありがとうございました。
いえいえ、そんなことはありません。間違った投稿をご覧になっています。すぐ下にもあります :)))お客様が確認されたバージョンでは、ペンデンティブを設定すべき、現在の価格からのレベルが表示されていません(現在の価格しか表示されていません)。ご感想をお寄せいただきありがとうございました。
OPENORDER()関数の呼び出し、または関数自体に何か問題があるようです。
次のような仕組みになっています。
イフ (BUYSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
int error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
}
OPENORDER()関数の呼び出し、または関数自体に何か問題があるようです。
次のような仕組みになっています。
イフ (BUYSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
int error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
}
あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ コンピュータの神様!!!もう10回目だよ!なんで動かないんだ!?メインはマーケットオープンです。懸案のものも、まったく同じ原理で書かれている。何が足りないのか?:)))))))
チュートリアルにあるTrailingStopFrCnSAR_v2をExpert Advisorに挿入する方法について教えてください。
注文追跡を無効にして、他のEAが保留中の注文を 出したり、注文を開いたりしたときに動作するようにするにはどうすればよいですか?
ウラヤマシイ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!バグを発見!
もし興味がある方がいらっしゃれば、こちらが実用版です。
#property copyright"著作権 © 2010, Khlystov Vladimir".
#p
roperty link "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
extern int stoploss = 0; //SL露出のレベル、0ならSLは露出しない
extern int int takeprofit = 0; //t TPレベル、0ならTP非展示
extern int int Magic = 123456; //注文番号
extern bool BUY = false; //買いの注文を出す
extern bool SELL = false; //売りの注文を出す
extern bool BUYSTOP = false; //BUYSTOP注文を開始します。
extern bool SELLSTOP = false; //SELLSTOP注文を開始します。
extern double Lot = 0.1; // 注文数量
extern int slippage = 3; //成行注文で許容される最大限の価格偏差
extern int DistanceSet = 20; //市場距離
//--------------------------------------------------------------------
ダブルSL,TP。
//--------------------------------------------------------------------
int start()
{
なら
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「買付」。)
}
売ったら
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「売り」)。
}
イフ (BUYSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits);さもなければ TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER(以下、「バイ・ストップ」という。)
}
if (SELLSTOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER(「売りストップ」)。
}
return(0)です。
}
//--------------------------------------------------------------------
void OPENORDER(string ord)
{
int error,err;
内
{error=true。
if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,",Magic,0);
if (ord=="Buy Stop" ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell Stop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,",Magic,0);
if (error==-1) //失敗
{
ShowERROR()。
err++;Sleep(2000);RefreshRates()。
}
if (error || err >10) return;
}
を返します。
}
//--------------------------------------------------------------------
void ShowERROR()
{
int err=GetLastError();
スイッチ ( err )
{
case 1: return;
case 2: Alert("No connection to the trade server ",Symbol());リターン。
case 3: Alert("Error incorrect parameters ",Symbol());戻り。
case 130: Alert("Error close Ticket stops ",Symbol());戻り。
case 134: Alert("Not enough money ",Symbol());return。
case 146: Alert("Error Trade Subsystem is busy ",Symbol());戻り。
case 129: Alert("Error Wrong price ",Symbol());戻り。
case 131: Alert("Error Incorrect volume ",Symbol());戻り。
case 4200:Alert("Error Object already exists ",Symbol());return。
default: Alert("Error ",err," ",Symbol());戻り。
}
}
//--------------------------------------------------------------------
議論に参加された皆さん、本当にありがとうございました!!!あなたがいなければどこにも行けない!:)))))
ウラヤマシイ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!間違いを発見!
議論に参加された皆さんに大感謝です!!!!あなたがいなければどこにも行けない!:)))))
の場合、コードにエラーがあります。
注意: 保留注文のストップとテイクは、現在の価格からではなく、注文の開始価格から カウントされることに注意してください。
HELP!教えてください、私はポジションの一部を閉じる場合(例えば1ロットの順序、および0.5ロットを閉じる)OrderCloseチケットは変更する必要がありますか?私のテスターではそうなっているのですが...。どうすれば回避できるのか?以下は、クロージングコードの一部です...。
1 2011.01.31 06:57 売り 1 2.55 1.36177 0.00000 0.00000 10000.00
2 2011.01.31 08:10 売り 1 0.51 1.36039 0.00000 0.00000 70.38 10070.38
3 2011.01.31 08:10 売り 2 2.04 1.00000 0.00000 0.00000 10000.3836177 0.00000 0.00000 0.0000 10070.38
4 2011.01.31 08:10 close 2 0.40 1.36038 0.00000 0.00000 55.60 10125.98
5 2011.01.31 08:10 sell 3 1.64 1.36177 0.00000 0.00000 0.00000 10125.98
もう一つの質問:私は私の注文を4つの部分に分割し、Cls_S==trueがトリガーされたときにそれらの各々を閉じたいのです。カウンターを使おうとしたのですが・・・。うまくいかない...
どなたか、アイデアを教えてください。
ありがとうございました!!!!
if (Tip==1 && ((Cls_S0==true&&TotClS==0)||(Cls_S1==true&TotClS==1)
||(Cls_S2==true&TotClS==2)||(Cls_S3==true&TotClS==3)) // 売り注文が開かれている。
{ // そして、それを閉じるための基準がある
Alert("Attempting to close 0.2 Lot Sell ",Ticket,".返信待ち...");
RefreshRates(); // データ更新
Ans=OrderClose(Ticket,LotCt,Ask,5)。
if (Ans==true) // うまくいきました :)
{
TotClS++;
Alert ("Closed 0.2 Lot Sell ",Ticket);
break; // 閉ループから抜ける
}
if (Fun_Error(GetLastError())==1) // エラー処理
continue; // Retry
return; // start() からの終了
}
break; // Exit while
フラグ[]バッファの一時的な描画を行いました - それは空です、しかし、なぜですか?私のエラーはどこにあるのでしょうか?
何かを示すように、少し修正しただけです。
- インジケータを別ウィンドウにして、それを元に戻すと
- 配列macd[]が宙に浮いていたのをインジケータにし、精度を上げた。
- 複雑な条件を固定して開き、簡単な条件を入れて調整します。
- は、フラグの条件を変更したので、少なくとも動作はします。
そして、徐々に条件を導入していけば、どこにバグがあるのかがすぐに分かるようになります。