MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1512 1...150515061507150815091510151115121513151415151516151715181519...1953 新しいコメント Порт-моне тв 2021.06.20 11:39 #15111 どなたか以下のコードを提案していただけませんか? もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。 同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確にはわかりません。ハッピー・ペンテコステ・トゥ・オール) Aleksei Stepanenko 2021.06.20 11:48 #15112 Igor Makanu:普通じゃない、8バイトでは何か送るのに苦労する まあ、目的にもよりますが、単なる備忘録なら8枚で十分です :) Tretyakov Rostyslav 2021.06.20 11:56 #15113 Порт-моне тв:どなたか以下のコードを提案していただけませんか?もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確にはわかりません。ハッピー・ペンテコステ・トゥ・オール) //+----------------------------------------------------------------------------+ //| Подсчет ордеров | //+----------------------------------------------------------------------------+ //| -1 - Все типы ордеров | //| 0 - ордера типа BUY 3 - ордера типа SELLLIMIT | //| 1 - ордера типа SELL 4 - ордера типа BUYSTOP | //| 2 - ордера типа BUYLIMIT 5 - ордера типа SELLSTOP | //+----------------------------------------------------------------------------+ double GetCloseOrderType(int order_type) { double p = 0; for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--) { if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true) { if(OrderCloseTime()>=время начала дня) { if(OrderType()==order_type || order_type == -1) cnt++; } } } return(p); } Maxim Kuznetsov 2021.06.20 12:06 #15114 Порт-моне тв:どなたか以下のコードを提案していただけませんか?もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確には わかりません。ハッピーホリデー(Happy Holidays to everyone) /// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня datetime EndOfDay(datetime tim=0) { if (tim==0) tim=TimeCurrent(); datetime dt; TimeToStruct(tim,dt); dt.hour=23; dt.min=59; dt.sec=59; return StructToTime(dt); } /// где-то в торговой логике, отрывки datetime tradeAllowedFrom; // в глобальной области .... tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня .... if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли Buy(); // Sell(); } 質問の理解が正しければ、おおよそ次のようなものです(原理そのもの)。 Any questions from newcomers 時系列と指標へのアクセス - CopyTicks MQL5の構造体とデータ表示メソッド Igor Makanu 2021.06.20 12:11 #15115 Aleksei Stepanenko:まあ、どんな目的で使うかにもよりますが、自分を思い出すためだけなら8本で十分です :) もし、自分自身に思い出させたいのであれば、OnChartEvent()にカスタムイベントを 投げる方が便利だと思います。 MakarFX。 次のコードを提案できる人。 注文のグリッドがCLOSE(同じ種類が2つ以上)の場合、その日の終わり(または時間、分単位で設定可能なある時間)まで取引を停止します。 一日の始まりの日(今日、またはゼロバーを取得するためにTF D1から、または変換するためにdatetimeのティック時間から)注文履歴を 検索します。 履歴の中で、設定された日付より大きい注文が少なくとも1つ見つかれば - 関数を終了し、true を返します。 このような関数が日付パラメータ(today)を使って呼び出される際、一番上のOnTick()で 書くのが面倒なので、そこに10数行あります、Kimさんの例では、履歴の中の注文を日付で検索する関数があります Tretyakov Rostyslav 2021.06.20 12:16 #15116 Порт-моне тв: 履歴を同じオーダータイプで 見つけるとカウントするのは、まだなんとかなるのですが、最後までどうやって止めるのか、よくわかりません。トリニティに幸あれ) bool trade_buy; bool trade_sell; if(кол-во закрытых ордеров buy>2) trade_buy=false; else trade_buy=true; if(кол-во закрытых ордеров sell>2) trade_sell=false; else trade_sell=true; Порт-моне тв 2021.06.20 12:36 #15117 Maxim Kuznetsov: /// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня datetime EndOfDay(datetime tim=0) { if (tim==0) tim=TimeCurrent(); datetime dt; TimeToStruct(tim,dt); dt.hour=23; dt.min=59; dt.sec=59; return StructToTime(dt); } /// где-то в торговой логике, отрывки datetime tradeAllowedFrom; // в глобальной области .... tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня .... if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли Buy(); // Sell(); } 質問の意味が正しければ、次のようになります(原理そのもの)。 早速の返信ありがとうございます、しかしこの「取引禁止」というもの、どうやって実装すればいいのかわかりません、コードありがとうございます。 Порт-моне тв 2021.06.20 12:38 #15118 MakarFX: 貿易販売/貿易購入 - 機能として!? Tretyakov Rostyslav 2021.06.20 12:53 #15119 Порт-моне тв: 貿易販売/貿易購入 - 機能どのように!? //+------------------------------------------------------------------+ bool trade_buy; bool trade_sell; //+----------------------------------------------------------------------------+ //| Подсчет ордеров | //+----------------------------------------------------------------------------+ //| -1 - Все типы ордеров | //| 0 - ордера типа BUY 3 - ордера типа SELLLIMIT | //| 1 - ордера типа SELL 4 - ордера типа BUYSTOP | //| 2 - ордера типа BUYLIMIT 5 - ордера типа SELLSTOP | //+----------------------------------------------------------------------------+ double GetCloseOrderType(string symb="",int order_type) { double p = 0; if(symb=="0") symb=_Symbol; for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--) { if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true) { if(OrderSymbol()==symb || symb=="") { if(OrderCloseTime()>=iTime(_Symbol,PERIOD_D1,0)) { if(OrderType()==order_type || order_type == -1) cnt++; } } } } return(p); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(GetCloseOrderType(_Symbol,0)>2) trade_buy=false; else trade_buy=true; if(GetCloseOrderType(_Symbol,1)>2) trade_sell=false; else trade_sell=true; //--- if(trade_buy) { твое условие открытия покупок } if(trade_sell) { твое условие открытия продаж } //--- } //+------------------------------------------------------------------+ frank2020 2021.06.20 12:54 #15120 Vitaly Muzichenko:どちらかというと、ここからの 受け売りです。 私はプログラミングの初心者で、あまり上手ではありませんが、それをやり直して、ダウンロードできるようにしてくれませんか? 1...150515061507150815091510151115121513151415151516151715181519...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どなたか以下のコードを提案していただけませんか?
もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。
同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確にはわかりません。ハッピー・ペンテコステ・トゥ・オール)
普通じゃない、8バイトでは何か送るのに苦労する
まあ、目的にもよりますが、単なる備忘録なら8枚で十分です :)
どなたか以下のコードを提案していただけませんか?
もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。
同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確にはわかりません。ハッピー・ペンテコステ・トゥ・オール)
どなたか以下のコードを提案していただけませんか?
もし、注文のグリッドがCLOSED(同じ種類が2つ以上)であれば、その日の終わり(または時間、分単位で設定可能ないくつかの時間)まで取引を停止します。
同じオーダータイプで 見つけた履歴をカウントするのはまだなんとか可能ですが、一日の終わりに止める方法は正確には わかりません。ハッピーホリデー(Happy Holidays to everyone)
/// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня
datetime EndOfDay(datetime tim=0) {
if (tim==0) tim=TimeCurrent();
datetime dt;
TimeToStruct(tim,dt);
dt.hour=23;
dt.min=59;
dt.sec=59;
return StructToTime(dt);
}
/// где-то в торговой логике, отрывки
datetime tradeAllowedFrom; // в глобальной области
....
tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня
....
if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли
Buy(); // Sell();
}
質問の理解が正しければ、おおよそ次のようなものです(原理そのもの)。
まあ、どんな目的で使うかにもよりますが、自分を思い出すためだけなら8本で十分です :)
もし、自分自身に思い出させたいのであれば、OnChartEvent()にカスタムイベントを 投げる方が便利だと思います。
MakarFX。
次のコードを提案できる人。
注文のグリッドがCLOSE(同じ種類が2つ以上)の場合、その日の終わり(または時間、分単位で設定可能なある時間)まで取引を停止します。
一日の始まりの日(今日、またはゼロバーを取得するためにTF D1から、または変換するためにdatetimeのティック時間から)注文履歴を 検索します。
履歴の中で、設定された日付より大きい注文が少なくとも1つ見つかれば - 関数を終了し、true を返します。
このような関数が日付パラメータ(today)を使って呼び出される際、一番上のOnTick()で
書くのが面倒なので、そこに10数行あります、Kimさんの例では、履歴の中の注文を日付で検索する関数があります
/// получаем время конца (по умолч.текущего) дня. То есть время последней секунды дня
datetime EndOfDay(datetime tim=0) {
if (tim==0) tim=TimeCurrent();
datetime dt;
TimeToStruct(tim,dt);
dt.hour=23;
dt.min=59;
dt.sec=59;
return StructToTime(dt);
}
/// где-то в торговой логике, отрывки
datetime tradeAllowedFrom; // в глобальной области
....
tradeAllowedFrom=EndOfDay(); // где сетку проверяем : запрещаем торговлю до конца дня
....
if (TimeCurrent()>tradeAllowedFrom) { // проверка разрешения торговли
Buy(); // Sell();
}
質問の意味が正しければ、次のようになります(原理そのもの)。
貿易販売/貿易購入 - 機能どのように!?
どちらかというと、ここからの 受け売りです。
私はプログラミングの初心者で、あまり上手ではありませんが、それをやり直して、ダウンロードできるようにしてくれませんか?