MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1594 1...158715881589159015911592159315941595159615971598159916001601...1953 新しいコメント Tretyakov Rostyslav 2021.08.19 14:58 #15931 законопослушный гражданин:しゃいしかし、この関数では: doubleGetProfitFromStart()yellowは関数の名前だけですよね?原理的には何でもいいんですか? そう、わかりやすくするためにそう呼んだのだGet Profit FromStart законопослушный гражданин 2021.08.19 19:25 #15932 MakarFX: そう、わかりやすくするためにこのような名前にしたのです。 ありがとうございます。 エキスパートティック機能において void OnTick() - if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE)) というコード行は、EAを最初に起動したときの最初の注文トリガーだけではないことが判明した。 のみならず、条件に従ってオーダーがクローズされた後の各ランも。 if(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1) { if (IsTesting()) { CloseOrder(); ObjectSetInteger(0,"lab_Button",OBJPROP_STATE,false); } else { CloseOrder(); } } ということなのでしょうか? Petronet 2021.08.19 19:46 #15933 MakarFX:すべての負け注文の損失額ご免なさい、また誤解しちゃった または各負け注文の損失額または、すべての負け注文の累積損失... 1枚だけ印刷する場合は、スクリプトで行うのがよいでしょう そんなことしなくても、こうすればいいんです あなたのコードが役に立ちました。同じメッセージが100回表示されるのではなく、4-10回だけ表示されるようになりました。おそらく、else演算子を追加する必要があります。 Tretyakov Rostyslav 2021.08.19 20:40 #15934 Petronet: あなたのコードが役に立ちました。同じメッセージが100回表示されるのではなく、4-10回だけ表示されるようになりました。おそらく、else演算子を追加する必要があるのでしょう。 コードはどこにどのように書かれているのですか? Tretyakov Rostyslav 2021.08.19 20:45 #15935 законопослушный гражданин:ありがとうございます。エキスパートティック機能においてvoid OnTick() - if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE)) というコード行は、EAを最初に起動したときの最初の注文トリガーだけではないことが判明した。 のみならず、条件に従ってオーダーがクローズされた後の各ランも。ということなのでしょうか? 以上がEAの実行条件ですが、もし( if) (CountOrders()==0(注文なし)&&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))( そしてボタンが押された) なら、取引できることになります。 Petronet 2021.08.20 18:16 #15936 MakarFX: コードはどこにどのように書かれているのですか? EAのint start()関数の本体に コードを挿入しています。else演算子を追加して、空の変数をねじ込むと、データの重複はなくなりましたが、マイナスが2回連続すると、10回と2-3回でデータの重複が発生します。100回同じ情報を出す、私のオリジナルのループをコメントアウトしました。あなたの働くもの。 int start() { //for (int trade = OrdersHistoryTotal() - 1; trade >= 0; trade--) //{ //if ( OrderSelect(trade, SELECT_BY_POS,MODE_HISTORY)) //{ //old_order_type = OrderType(); //if ( OrderProfit()<0 ) //последний закрытый советником ордер был убыточным, значит, следующий ордер открываем в направлении, противоположном закрытому с убытком //{ //Print("Закрылись с минусом:", OrderProfit()); //break; //прекращаем поиск //} //} //break; //} for(int pos=0; pos<OrdersHistoryTotal(); pos++) { if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY)) { if(OrderSymbol()==_Symbol) { if(OrderCloseTime()>=TimeStart) { if(OrderProfit()<0) {cnt=OrderProfit(); Print("ордера с минусом", cnt); TimeStart=TimeCurrent(); cnt=0;} else gg=gg+1; } } } } Tretyakov Rostyslav 2021.08.20 19:07 #15937 Petronet: EAのint start()関数のボディに コードを挿入しています。else演算子を追加して、空の変数をねじ込むと、データの重複はなくなりましたが、2回連続で損切りすると、データの重複が10回と2~3回発生します。100回同じ情報を出す、私のオリジナルのループをコメントアウトしました。あなたの働くもの。 // это в глобальные переменные datetime TimeStart; // это в init() TimeStart=Time[0]; 損切りの際に一度だけ印刷されます Eugen8519 2021.08.21 09:53 #15938 金曜日の午後8時30分にポジションをクローズ する関数を挿入しました。 しかし、アドバイザーはそれが金曜日であることに気づかず、毎日ポジションをクローズしている 次のようになります。 input bool UseTimeLimitClose = true; // -- Funktion ein/ausschalten -- enum daysOfWeek { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5 }; input daysOfWeek closday = 5; // -- Handel bis Tag -- input int Close_Hour = 20; // -- Handel bis Uhrzeit Std.-- input int Close_min = 30; void OnTick() if(UseTimeLimitClose) { MqlDateTime TimeNow; TimeToStruct(TimeCurrent(),TimeNow); if ( TimeNow.day_of_week >= closday && TimeNow.hour >= Close_Hour && TimeNow.min >= Close_min ) { CloseAllPositions(); } Tretyakov Rostyslav 2021.08.21 10:10 #15939 Eugen8519: 金曜日の午後8時30分にポジションをクローズ する関数を挿入しました。 しかし、アドバイザーはそれが金曜日であることに気づかず、毎日ポジションをクローズしている 斯くや void OnTick() if(UseTimeLimitClose) { if (TimeDayOfWeek(TimeCurrent())==closday && TimeHour(TimeCurrent())>= Close_Hour && TimeMinute(TimeCurrent()) >= Close_min ) { CloseAllPositions(); } Tretyakov Rostyslav 2021.08.21 10:34 #15940 これを外部変数に出力する方法を教えてください。 double levelss[7] = {0,0.236,0.382,0.5,0.618,1,1.618}; // Уровни Fibo 1...158715881589159015911592159315941595159615971598159916001601...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
しゃい
しかし、この関数では: doubleGetProfitFromStart()
yellowは関数の名前だけですよね?
原理的には何でもいいんですか?
そう、わかりやすくするためにこのような名前にしたのです。
ありがとうございます。
エキスパートティック機能において
void OnTick() - if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE)) というコード行は、EAを最初に起動したときの最初の注文トリガーだけではないことが判明した。
のみならず、条件に従ってオーダーがクローズされた後の各ランも。
ということなのでしょうか?
すべての負け注文の損失額
ご免なさい、また誤解しちゃった
または各負け注文の損失額
または、すべての負け注文の累積損失...
1枚だけ印刷する場合は、スクリプトで行うのがよいでしょう
そんなことしなくても、こうすればいいんです
あなたのコードが役に立ちました。同じメッセージが100回表示されるのではなく、4-10回だけ表示されるようになりました。おそらく、else演算子を追加する必要があるのでしょう。
ありがとうございます。
エキスパートティック機能において
void OnTick() - if(CountOrders()==0&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE)) というコード行は、EAを最初に起動したときの最初の注文トリガーだけではないことが判明した。
のみならず、条件に従ってオーダーがクローズされた後の各ランも。
ということなのでしょうか?
以上がEAの実行条件ですが、もし( if) (CountOrders()==0(注文なし)&&ObjectGetInteger(0, "lab_Button",OBJPROP_STATE))( そしてボタンが押された) なら、取引できることになります。
コードはどこにどのように書かれているのですか?
EAのint start()関数のボディに コードを挿入しています。else演算子を追加して、空の変数をねじ込むと、データの重複はなくなりましたが、2回連続で損切りすると、データの重複が10回と2~3回発生します。100回同じ情報を出す、私のオリジナルのループをコメントアウトしました。あなたの働くもの。
損切りの際に一度だけ印刷されます
しかし、アドバイザーはそれが金曜日であることに気づかず、毎日ポジションをクローズしている
次のようになります。
金曜日の午後8時30分にポジションをクローズ する関数を挿入しました。
しかし、アドバイザーはそれが金曜日であることに気づかず、毎日ポジションをクローズしている
斯くや
これを外部変数に出力する方法を教えてください。