MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1809 1...180218031804180518061807180818091810181118121813181418151816...1953 新しいコメント Alexander Avksentyev 2021.12.10 20:04 #18081 Alekseu Fedotov #:いや、それはおかしい。OrderModifyでは、その方が正しいです。そして、独立したブロックとしてより良い。 OK、ありがとうございます! Tretyakov Rostyslav 2021.12.10 20:28 #18082 Alexander Avksentyev #:あるのは、すべて。よろしくお願いします。 #property strict //--- input parameters input int Magic =12345; input int iTakeProfit =10; input int iTrailStart =10; input int iTrailDist =10; input int iTrailStep =10; input int iTrailTakeProfit =10; input int iStep =10; input int iSlippage =5; input double Lot =0.01; int Login = 4950287; datetime time = D'2022.01.01 00:00:00'; string name = "AutoP_v.3.0"; datetime time1 = 0; double price, TP, lastlot, minlot; int Forder; int TakeProfit,TrailStart,TrailDist,TrailStep,TrailTakeProfit,Step,Slippage; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- if(AccountNumber() != Login) { int close = MessageBox("Неверный номер счёта","Ошибка",MB_OK|MB_ICONSTOP); return(INIT_FAILED); }else (AccountNumber() == Login); { int close = MessageBox("Проверка прошла успешно.Экcперт может приступить к работе.","Инициализация",MB_OK|MB_ICONEXCLAMATION); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// if (TimeCurrent() > time) { int close = MessageBox("Время работы закончилось!!!","Время работы",MB_OK|MB_ICONSTOP); return(INIT_FAILED); }else(TimeCurrent() < time); { int close = MessageBox("Проверка времени работы прошла успешно.Эксперт может приступить к работе!","Время работы",MB_OK|MB_ICONEXCLAMATION); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// TakeProfit =iTakeProfit; TrailStart =iTrailStart; TrailDist =iTrailDist; TrailStep =iTrailStep; TrailTakeProfit=iTrailTakeProfit; Step =iStep; Slippage =iSlippage; if(Digits == 3 || Digits == 5) { TakeProfit *=10; TrailStart *=10; TrailDist *=10; TrailStep *=10; TrailTakeProfit *=10; Step *=10; Slippage *=10; } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if (CountTrades() == 0) { double body = Close[1] - Open[1]; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //Открытие позиции Buy if (body > 0) { Forder = (OrderSend(_Symbol,OP_BUY,Lot,Ask,Slippage,0,0,"Коммент",Magic,0,Blue)); if(Forder > 0) { Print("Открыта Позиция BUY"); if(OrderSelect(Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble((Ask+TakeProfit*_Point),_Digits); if (OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0)) Print("Ордер Модифицирован BUY "); else Print("Ошибка Модификации Ордера BUY = ",GetLastError()); } } else Print("Ошибка Открытия Позиции BUY"); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //Открытие позиции Sell if (body < 0) { Forder = (OrderSend(_Symbol,OP_SELL,Lot,Bid,Slippage,0,0,"Коммент Sell",Magic,0,Red)); if (Forder > 0) { Print("Открыта Позиция SELL"); if(OrderSelect(Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble((Bid-TakeProfit*_Point),_Digits); if (OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0)) Print("Ордер Модифицирован SELL "); else Print("Ошибка Модификации Ордера SELL = ",GetLastError()); } } else Print("Ошибка Открытия Позиции BUY"); } } //--- } //+------------------------------------------------------------------+ //| Подсчет открытых ордеров | //+------------------------------------------------------------------+ int CountTrades() { int count =0; int i=OrdersTotal()-1; for(int pos=i;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol) { if(OrderMagicNumber()==Magic) count ++; } } } return(count); } //+------------------------------------------------------------------+ Alexander Avksentyev 2021.12.10 21:36 #18083 MakarFX #: ありがとうございました。 Alexander Avksentyev 2021.12.11 10:15 #18084 MakarFX #: ただ、彼は買いも売りも一度に開くようになった。と思い込んでいました。 int CountTrades() { int count =0; int i=OrdersTotal()-1; for(int pos=i;pos>=0;pos--) { if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol()==_Symbol) { if(OrderMagicNumber()==Magic) count ++; } } } return(count); } この部分は、マジックでオープンポジションがあるかどうかをチェックし if (CountTrades() == 0) { この部分は両開きにすることはできません。 Tretyakov Rostyslav 2021.12.11 11:15 #18085 Alexander Avksentyev #:ただ、彼は買いも売りも一度に開く ようになった。と思い込んでいました。この部分は、マジックでオープンポジションがあるかどうかをチェックし この部分は両開きにすることはできません。 ありえない、ログを見せるか、いつ、どのペアで、どの時間軸で、と書いてくれれば確認できる。 そうなんです。 この部分は、すでに開いている注文がある場合、開くことができません。 Alexander Avksentyev 2021.12.11 11:46 #18086 MakarFX #:可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。そうなんです。この部分は、すでにオープンしている注文がある場合はオープンさせません。 申し訳ございません。 私はすでにこのルールを作っていますが、すべてのローソク足で、前のローソクの終値の方向に開くことが判明しています。 私のミスです。 Alexander Avksentyev 2021.12.11 11:47 #18087 MakarFX #:可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。そうなんです。この部分は、すでに開いている注文がある場合は開くことができません。 10種類のエディターがあり、あちこちで何かを変え、混乱しています。 Alexander Avksentyev 2021.12.11 11:52 #18088 MakarFX #:可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。そうなんです。この部分は、すでに開いている注文がある場合は開くことができません。 もうひとつ質問です。 どの程度真剣に注意すればいいのでしょうか? Tretyakov Rostyslav 2021.12.11 11:53 #18089 Alexander Avksentyev #:もうひとつ質問です。警告をどの程度真剣に受け止めるべきか? いつもです。多くの警告は不注意が原因です。 Seric29 2021.12.11 15:32 #18090 MakarFX #:端末のサイズを確認する追伸:「32bitのライブラリ」が64vinで動作するのは事実ではありません。 Visual Studioには、そのための設定があります。 コンソールアプリケーションを作成するときに、32バージョンのプログラムを選択すると実行されます。この場合のポインタは4バイトである。 1...180218031804180518061807180818091810181118121813181418151816...1953 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
いや、それはおかしい。
OrderModifyでは、その方が正しいです。
そして、独立したブロックとしてより良い。
OK、ありがとうございます!
あるのは、すべて。よろしくお願いします。
ありがとうございました。
ただ、彼は買いも売りも一度に開くようになった。と思い込んでいました。
この部分は、マジックでオープンポジションがあるかどうかをチェックし
この部分は両開きにすることはできません。
ただ、彼は買いも売りも一度に開く ようになった。と思い込んでいました。
この部分は、マジックでオープンポジションがあるかどうかをチェックし
この部分は両開きにすることはできません。
ありえない、ログを見せるか、いつ、どのペアで、どの時間軸で、と書いてくれれば確認できる。
そうなんです。
この部分は、すでに開いている注文がある場合、開くことができません。
可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。
そうなんです。
この部分は、すでにオープンしている注文がある場合はオープンさせません。
申し訳ございません。
私はすでにこのルールを作っていますが、すべてのローソク足で、前のローソクの終値の方向に開くことが判明しています。
私のミスです。
可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。
そうなんです。
この部分は、すでに開いている注文がある場合は開くことができません。
10種類のエディターがあり、あちこちで何かを変え、混乱しています。
可能性は低い ですが、ログを見せるか、いつ、どのペアで、何時か書いてくれれば、確認できます。
そうなんです。
この部分は、すでに開いている注文がある場合は開くことができません。
もうひとつ質問です。
どの程度真剣に注意すればいいのでしょうか?
もうひとつ質問です。
警告をどの程度真剣に受け止めるべきか?
端末のサイズを確認する
追伸:「32bitのライブラリ」が64vinで動作するのは事実ではありません。
Visual Studioには、そのための設定があります。
コンソールアプリケーションを作成するときに、32バージョンのプログラムを選択すると実行されます。この場合のポインタは4バイトである。