MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1515

 

皆さん、原因を突き止めました。問題は、1日の出力を許容するために必要な残高の計算で、この計算式ではエラーは出ないが、うまくいかない。

   datetime TimeCheck_sb = StrToTime("1:00");

   if(TimeCurrent()==TimeCheck_sb)
     {
       sb1 = AccountBalance();
     }
// и это мне вы тут насоветовали на форуме!!!!!!


   далее там условие такое if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100) > AccountBalance())
                               {

                                условие открытия ордера...

                                }

遊びでやるなら効果あり。

AccountBalance()>0

は、遊びでやるとうまくいかない。

sb1>0

double sb1; - は,何かあれば宣言する.


で解くべき問題です。

 sb1 = AccountBalance();
 
Порт-моне тв:

皆さん、原因を突き止めました。問題は、1日の出力を許容するために必要な残高の計算で、この計算式ではエラーは出ないが、うまくいかない。

遊びでやるなら効果あり。

は、遊びでやるとうまくいかない。

double sb1; - は,何かあれば宣言する.


で解答してください。

   datetime TimeCheck_sb = StrToTime("1:00");

   if(TimeCurrent()==TimeCheck_sb)

毎日使わなくてもいいし、かといって定期的に使っても変だし。

 
Maxim Kuznetsov:

毎日発動する必要はない...むしろ、定期的に発動するほうがおかしい

また、一日の始まりに残高を確定するにはどうすればよいのでしょうか?

 

KEY_TILDEをHighlightとUnselectの2つのイベントに設定する方法は、申し訳ありませんが、まだ理解していません。ターミナルでトリガーとメッセージの表示を同時に行うか、このデフォルトのオプションのみが表示されます。アホがどうやって説明するんだ?

if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true);
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,true);
            Print("Выделить!");
            break;
            
            default:
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,false);
            ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,false);
            Print("Отменить выделение!");
            break;
        }
        
     }
 
DYM:

KEY_TILDEをHighlightとUnselectの2つのイベントに設定する方法は、申し訳ありませんが、まだ理解していません。ターミナルでトリガーとメッセージの表示を同時に行うか、このデフォルトのオプションのみが表示されます。脳足りんがどうやって説明するんだ?

検出されたイベント - 状態を確認...選択されている場合 - 選択を解除します。それ以外の場合は選択されています。

 
DYM:

KEY_TILDEをHighlightとUnselectの2つのイベントに設定する方法は、申し訳ありませんが、まだ理解していません。ターミナルでトリガーとメッセージの表示を同時に行うか、このデフォルトのオプションのみが表示されます。アホがどうやって説明するんだ?


//+------------------------------------------------------------------+
if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE: 
         TILDE(); 
         break;
        }
     }
//+------------------------------------------------------------------+
void TILDE()
  {
   if(ObjectGetInteger(0,"RectLabel",OBJPROP_SELECTABLE)==false)
     {
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,true);
      Print("Выделить!");
     }
   else
     {
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTED,false);
      Print("Отменить выделение!");
     }
  }
 
Порт-моне тв:

その場合、どのように残高を確定すればよいのでしょうか?

どなたかお分かりになる方はいらっしゃいませんか?

 
Порт-моне тв:

どなたか、ご意見をお聞かせください。

   if(AccountBalance()>0)
     {
      sb1 = AccountBalance()-DayProfit();
     }
................

//+--------------------------------------------------------------------------------------------------------------------+
//|  Суммарный профит в валюте депозита закрытых с определённой даты позиций                                           |
//+--------------------------------------------------------------------------------------------------------------------+
double DayProfit()
  { double p = 0; datetime st=StrToTime("1:00");
   for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--)
     {
      if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==true)
        {
         if(OrderCloseTime()>=st){p+=OrderProfit()+OrderSwap()+OrderCommission();}
        }
     }
   return(p);
  }
//+--------------------------------------------------------------------------------------------------------------------+
 
MakarFX:


なんとお礼を言っていいか...本当にありがとうございました、と言うしかない。これ以上迷惑をかけないようにします :)
 
Порт-моне тв:

どなたかご意見をお聞かせください。

をキャッチし、その瞬間の残高値を 計算します。

正しい指標をとれ」と言われたのもむべなるかな、数行のコードには収まらないでしょう。なかなかキャパシティのあるアルゴリズムですね。

日変化を捉えるのは「今知っている日数が前の日数と等しくない」ので簡単だが、それ以上は難しい