MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1695 1...168816891690169116921693169416951696169716981699170017011702...1953 新しいコメント EVGENII SHELIPOV 2021.10.24 19:19 #16941 MakarFX #: Makar ありがとうございます、EAにねじ込んで見てみます。 EVGENII SHELIPOV 2021.10.24 19:46 #16942 MakarFX #: Makar ありがとうございます。ありがとうございます!!! EVGENII SHELIPOV 2021.10.24 19:48 #16943 MakarFX #: 不要な行は、例えば24時間後に勝手に削除されるようにしてほしい。 ありがとうございました!!! Tretyakov Rostyslav 2021.10.24 20:14 #16944 EVGENII SHELIPOV #:不要な行は、例えば24時間後に勝手に削除されるようにしてほしい。ありがとうございました!!! int OnInit() { if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) { ObjectCreate(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StartTime*3600),0); ObjectSetInteger(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue); ObjectCreate(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJ_VLINE,0,Time[0]+(StopTime*3600),0); ObjectSetInteger(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),OBJPROP_COLOR, clrBlue); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnTick() { if((UseHour==1&&Hour()>=StartTime&&Hour()<=StopTime)||UseHour==0) { if(ObjectFind(0,"Начало торговли"+TimeToString(Time[1],TIME_DATE))==0) { ObjectMove(0,"Начало торговли"+TimeToString(Time[0],TIME_DATE),0,Time[0]+(StartTime*3600),0) ObjectMove(0,"Окончание торговли"+TimeToString(Time[0],TIME_DATE),0,Time[0]+(StopTime*3600),0) } if(CountTrade(0)==0 && CountTrade(1)==0 && TradeSignal()==0) SendFirsOrder(0); if(CountTrade(1)==0 && CountTrade(0)==0 && TradeSignal()==1) SendFirsOrder(1); } //----- } Maxim Kuznetsov 2021.10.24 20:42 #16945 Nerd Trader #:ヘルプより 「 GetTickCount() は OS起動時から増え続けており、49日間は繰り返さないので、繰り返さないシーケンスを確実に取得するには、MathSrand(GetTickCount) を使用 します。 rand() で最初に繰り返される値 (以前に生成された値のいずれか) を得るのに、何回試行すればよいか、電卓で確認します。 Volodymyr Zubov 2021.10.24 20:58 #16946 私の経験から - キリル文字を書かないこと ECN MT4開設 /+----------------------------------------------------------------------------+ //| Функция открытия ордера (c) BeerGod 2015 | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - текущий символ) | //| op - операция | //| ll - лот | //| sl - уровень стоп | //| tp - уровень тейк | //| mn - MagicNumber | //+----------------------------------------------------------------------------+ // OpenPosition(string symbol,int operation,double volume,int slippage,double stoploss,double takeprofit,string comment,int magic,color); int OpenPosition(string sy, int op, double ll, int Slippage, int sl, int tp, string comment, int mn,color Color) { if(op == 0) // открытие BUY { // проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Buy, not enough money."); return(0); } RefreshRates(); // открываем ордер int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,comment,mn,0,Color); if(ticketbuy<0) Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Buy successfully"); // Sleep (Pause); // модифицируем ордер (выставляем тейпрофит и стоплосс) if(sl !=0 || tp !=0) { //--- вычисленные значения цен SL и TP должны быть нормализованы double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- если входящие значения ноль то заменяем цену модификации на ноль if(sl == 0) BSLoss = 0; if(tp == 0) BTProfit = 0; bool resbuy = OrderModify(ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,clrNONE); if(!resbuy) Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Buy successfully"); } } if(op == 1) // открытие Sell { // проверяем доступность свободных средств if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134)) { Print(sy," ",ll," It is impossible to open the order Sell, not enough money."); return(0); } RefreshRates(); // открываем ордер int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,comment,mn,0,Color); if(ticketsell<0) Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderSend Sell successfully"); // Sleep (Pause); // модифицируем ордер (выставляем тейпрофит и стоплосс) if(sl !=0 || tp !=0) { //--- вычисленные значения цен SL и TP должны быть нормализованы double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS)); //--- если входящие значения ноль то заменяем цену модификации на ноль if(sl == 0) SSLoss = 0; if(tp == 0) STProfit = 0; bool ressell = OrderModify(ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,clrNONE); if(!ressell) Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError()); else Print(sy," OpenPosition. OrderModify Sell successfully"); } } return (0); } //--- End --- ANDREY 2021.10.25 02:31 #16947 皆さん、ごきげんよう。 MQL4の動的2次元配列に関する基本的な情報はどこにあるのか、教えてください。まず、どうやって作るのかが気になります。どのように使うのですか?どのような機能が該当するのでしょうか? ありがとうございます。 Valeriy Yastremskiy 2021.10.25 12:27 #16948 ANDREY #:皆さん、ごきげんよう。MQL4の動的2次元配列に関する基本的な情報はどこにあるのか、教えてください。まず、どうやって作るのかが気になります。どのように使うのですか?どのような機能が該当するのでしょうか? ありがとうございます。ドキュメンテーション配列 そして、そのダイナミクスは一次元のものでしかないのです。その他の寸法は静止画です。 Объект динамического массива - Типы данных - Основы языка - Справочник MQL4 docs.mql4.com Объект динамического массива - Типы данных - Основы языка - Справочник MQL4 Artyom Trishkin 2021.10.25 13:14 #16949 Valeriy Yastremskiy #:ドキュメント・アレイ しかも1次元だけ動的に。その他の寸法は静止画です。 CArray などで、任意の次元で変更可能な動的配列を作成することができます。 Документация по MQL5: Стандартная библиотека / Коллекции данных www.mql5.com Коллекции данных - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 ANDREY 2021.10.25 15:05 #16950 Artyom Trishkin #:CArray などで、任意の次元で変更可能な動的配列を作成することができます。 よろしくお願いします。しかし、MQL 5の動的配列に関する情報へのリンクを与えてくれていますね。私はまだMQL 4をマスターしているのですが、それともMQL 5のコードは動的配列に関してもMQL 4に適しているのでしょ うか? ありがとうございまし た。 1...168816891690169116921693169416951696169716981699170017011702...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Makar ありがとうございます、EAにねじ込んで見てみます。
Makar ありがとうございます。ありがとうございます!!!
不要な行は、例えば24時間後に勝手に削除されるようにしてほしい。
ありがとうございました!!!
不要な行は、例えば24時間後に勝手に削除されるようにしてほしい。
ありがとうございました!!!
ヘルプより
「 GetTickCount() は OS起動時から増え続けており、49日間は繰り返さないので、繰り返さないシーケンスを確実に取得するには、MathSrand(GetTickCount) を使用 します。
rand() で最初に繰り返される値 (以前に生成された値のいずれか) を得るのに、何回試行すればよいか、電卓で確認します。
私の経験から - キリル文字を書かないこと
ECN MT4開設
皆さん、ごきげんよう。
MQL4の動的2次元配列に関する基本的な情報はどこにあるのか、教えてください。まず、どうやって作るのかが気になります。どのように使うのですか?どのような機能が該当するのでしょうか?
ありがとうございます。
皆さん、ごきげんよう。
MQL4の動的2次元配列に関する基本的な情報はどこにあるのか、教えてください。まず、どうやって作るのかが気になります。どのように使うのですか?どのような機能が該当するのでしょうか?
ありがとうございます。
ドキュメンテーション配列
そして、そのダイナミクスは一次元のものでしかないのです。その他の寸法は静止画です。ドキュメント・アレイ
しかも1次元だけ動的に。その他の寸法は静止画です。CArray などで、任意の次元で変更可能な動的配列を作成することができます。
CArray などで、任意の次元で変更可能な動的配列を作成することができます。
よろしくお願いします。しかし、MQL 5の動的配列に関する情報へのリンクを与えてくれていますね。私はまだMQL 4をマスターしているのですが、それともMQL 5のコードは動的配列に関してもMQL 4に適しているのでしょ うか?
ありがとうございまし た。