初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1045

 
Vladimir Baskakov:

症状の正しい表記について混乱しています、助けてください。

選択肢は2つあり得る。

  1. "MA Slow "は "MA Fast "よりも高い。
  2. "MA Slow "が "MA Fast "よりも小さいか等しい。


従って、結果の符号は "+"または"-"となる。もし、符号が"-"であれば、"-"は常に5*Point()より小さいので、条件は決して満たされない。


つまり、このコードは

   if(ma_slow[0]>ma_slow[9])
      if(ma_slow[0]-ma_slow[9]>5*Point())
        {

        }
   if(ma_slow[9]>ma_slow[0])
      if(ma_slow[9]-ma_slow[0]>5*Point())
        {

        }
 
Vladimir Karputov:

2つのオプションが考えられます。

  1. "MA Slow" は "MA Fast" よりも高い。
  2. "MA Slow "が "MA Fast "よりも小さいか等しい。


従って、結果の符号は "+"または"-"となる。記号が"-"の場合、"-"は常に5*Point()より小さいので、条件は満たされません。


つまり、このコードは

そのとおりです。2つ目の条件は、私もそうしようと思っていました;)感謝
 
Artyom Trishkin:

もしかして、デコンパイルしたコードを掲載したのでしょうか?もしかして、実行ファイルのデコンパイルに関わる他のことを頼まれたのでは?

いいえ、mql4からmql5へのコード変換に関する質問です。
すべてやったのですが、作業中にエラーが発生したので、解決するためにヘルプを求めました

 
Roman Sharanov:

いいえ、mql4からmql5へのコード変換に関する質問です。
一見すべてやったように見えますが、作業中にエラーが発生したので、解決するためにヘルプを求めました。

不思議ですね。暗号があったのですか?もしかしたら、その中に腐敗の兆候があったのでは?

 

ポジションを開く ことができません。どのような値でも間違った音量で応答があります。


   if(direction==0)
      open_label=open_label+"Buy  "+ "V = "+DoubleToString(V,2)+" price = "+DoubleToString(price_open,_Digits)+
                  " SL = "+DoubleToString(SL,_Digits)+"  TP = "+DoubleToString(TP,_Digits);
   else   
      open_label=open_label+"Sell  "+ "V = "+DoubleToString(V,2)+" price = "+DoubleToString(price_open,_Digits)+
                  " SL = "+DoubleToString(SL,_Digits)+"  TP = "+DoubleToString(TP,_Digits);
   
    Print(open_label);

   if(direction==0 && last.ask<=price_open)
      {
        if(!trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,V,price_open,SL,TP))
          Print("Метод PositionOpen() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
        else
          Print("Метод PositionOpen() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
      }


2019.05.20 21:53:24.814 position_open (XAUUSD,M10) 買い待ち V = 1.00 価格 = 1278.15 SL = 0.00 TP = 0.00

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) CTrade::OrderSend: market buy 1.00 XAUUSD [invalid volume].

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) PositionOpen()メソッドに失敗しました。リターンコード=10014。コード説明:無効なボリューム

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
こんにちは、皆さん、mt5ボリュームでオープントレードの手数料を計算する方法を教えてください、または既製の関数がある場所を教えてください。
 
Aleksandr Egorov:
こんにちは、皆さん、mt5ボリュームでオープントレードの手数料を計算する方法を教えてください、または既製の関数がある場所を教えてください。
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

// Комиссия всех открытых позиций.
double GetSumCommission()
{
  double Sum = 0;
  
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS))
      Sum += OrderCommission();
      
  return(Sum);
}
 
Aleksandr Egorov:
こんにちは、皆さん、mt5ボリュームでオープントレードの手数料を計算する方法を教えてください、または既製の関数があるかどうか教えてください。
PositionGetDouble(POSITION_COMMISSION)

または CPositionInf 委員会

 
Konstantin Nikitin:

または CPositionInf 委員会

長い間、働いていない。

 
fxsaber:

長い間、働いていないこと。

試してみたところ、御社の機能は問題なく動作しました。 ともかく、ご意見ありがとうございました。

手数料をどこで取るか把握した)) MT5初心者なのであまり気乗りしないが、おかしいなら確認したほうが良い

当たってると思う

double PROFIT()     {

   double  rez=0, alprof=0,svap=0,commicion=0;

   ulong ticet=0,tikett=0;

   long  entry=0;

   string com="";

   ulong tik;

   ulong ord;

   int i=0;

   for(i=PositionsTotal()-1;i>=0;i--) 

     {

      if(PositionGetSymbol(i)==Symbol() || PositionGetSymbol(i)==Pair)

        {

         if((tik=PositionGetTicket(i))>0)

           {

            alprof+=PositionGetDouble(POSITION_PROFIT);

            svap+=PositionGetDouble(POSITION_SWAP);

           }

        }

     }

   HistorySelect(0,TimeCurrent());

   for(uint r=HistoryDealsTotal()-1;r>0;r--) 

     {

      if((tikett=HistoryDealGetTicket(r))>0) 

        {

         ord=HistoryDealGetInteger(tikett,DEAL_ORDER);

         entry =HistoryDealGetInteger(tikett,DEAL_ENTRY);

         if(entry==DEAL_ENTRY_IN)

           {

            for(int t=PositionsTotal()-1;t>=0;t--) 

              {

               if(tik==ord)

                 {

                  commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION);

                 }

              }

           }

        }

     }

   rez+=alprof+commicion+svap;

   return(rez);   }

理由: