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

 
Nerd Trader #:

...


 
Nerd Trader #:
ide settingsで、関数間のでたらめな矩形挿入を削除するにはどうすればよいですか?

私にとっても全く不要なものです。

class cMy_class
  {
public:
   //Тут плюсуем
   int               Plus(
      int a,b//Это a и b
   );//Возвращает результат плюсования
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int cMy_class::Plus(int a,b)
  {
   return a+b;
  }
 
Nerd Trader #:
のように、スペースがある場合は、コメントが表示されません。

これが彼の見方です

/*******************Expert initialization function*******************/
int OnInit()
 {
  trade.LogLevel(LOG_LEVEL_NO);
  trade.SetExpertMagicNumber(1212);
  return(INIT_SUCCEEDED);
 }/******************************************************************/

/************************Expert tick function************************/
void OnTick()
 {
  Comment("", "\n",
//"p =  ", sizeP, "\n",
//"m =  ", sizeM, "\n",
//"summPlus =  ", DoubleToString(summPlus, 2), "\n",
//"summMinus =  ", DoubleToString(summMinus, 2), "\n",
//"profitStep =  ", DoubleToString(profitStep, 2),
          "\n"
         );
 }/******************************************************************/

/*********************TradeTransaction function**********************/
void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
 {
if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
 {
私でも、機能の始まりと終わりがわかるんです。
 
Alexey Viktorov #:

それが、彼の見方なのです。

私でも関数の始まりと終わりがわかります。

誰かに見られても問題ない。
コメントの前後に空白行がある場合。

折り込みチラシ



ただし、これはあまり重要ではなく、別のIDを使用する必要があります。

 

ごきげんよう!!!

パラボリックコードの トレーリングストップのバグを見つけるのを手伝ってください。

以下は、パラボリックに沿った トレーリングストップを 開くコマンドです。

//-------------------------------------------------------------------+  Команда на модификацию трейлинг стоп первых ордеров по параболику
   if(Update_Time != iTime(Symbol(),TimeframesIndicators,0))
      Update_Time = iTime(Symbol(),TimeframesIndicators,0);
   if(CountTrade(0) == 1 || CountTrade(1) == 1)
      ParabolicTrail();

パラボリックによるトレーリングストップ

//+----------------------------------------------------------------------------+
//| Трейлинг стоп одиночных ордеров по параболику                              |
//+----------------------------------------------------------------------------+
void ParabolicTrail()
  {
   double PSAR = iSAR(Symbol(),TimeframesIndicators, 0.02, 0.2,0);

   int Order_total = OrdersTotal();
   for(int i=Order_total-1; i>=0; i--)
     {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         continue; //если не получилось выделить ордер
      if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit() > 0 && OrderStopLoss() != 0 && OrderType() < 2)
        {
         if(OrderType() == OP_BUY)
           {
            if(PSAR < Ask && PSAR > OrderStopLoss())
              {
               if(OrderModify(OrderTicket(), OrderOpenPrice(), PSAR, OrderTakeProfit(), 0))
                 {
                  Print("Trailing Stop: Стоп Лосс ордера на покупку #",OrderTicket()," перенесен на цену ", DoubleToString(PSAR,Digits));
                 }
              }
           }
         else
            if(OrderType() == OP_SELL)
              {
               if(PSAR > Bid && PSAR < OrderStopLoss())
                 {
                  if(OrderModify(OrderTicket(), OrderOpenPrice(), PSAR, OrderTakeProfit(), 0))
                    {
                     Print("Trailing Stop: Стоп Лосс ордера на продажу #",OrderTicket()," перенесен на цену ", DoubleToString(PSAR,Digits));
                    }
                 }
              }
        }
     }
  }

ログにエラーはないが、トレイルが始まらない

ありがとうございます!!!

 
EVGENII SHELIPOV パラボリックコードの トレーリングストップのバグを見つけるのを手伝ってください。

以下は、パラボリックに沿った トレーリングストップを 開くコマンドです。

パラボリックによるトレーリングストップ

ログにエラーはないが、トレイルが始まらない

ありがとうございます!!!

本当にエラーはないのでしょうか?

そして、あなたの条件下では、それは不要です。

if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit() > 0 && OrderStopLoss() != 0 && OrderType() < 2)
 

EVGENII SHELIPOV #:

ログブックにエラーはないが、トロールも始まらない

ありがとうございます!!!

こんな風に試してみてください。

//+----------------------------------------------------------------------------+
//| Трейлинг стоп одиночных ордеров по параболику                              |
//+----------------------------------------------------------------------------+
void ParabolicTrail()
  {
   double PSAR = iSAR(Symbol(),TimeframesIndicators, 0.02, 0.2,0);

   int Order_total = OrdersTotal();
   for(int i=Order_total-1; i>=0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit() > 0 && OrderStopLoss() != 0)
           {
            if(OrderType() == OP_BUY)
              {
               if(PSAR < Ask && PSAR > OrderStopLoss())
                 {
                  if(OrderModify(OrderTicket(), OrderOpenPrice(), PSAR, OrderTakeProfit(), 0))
                    {
                     Print("Trailing Stop: Стоп Лосс ордера на покупку #",OrderTicket()," перенесен на цену ", DoubleToString(PSAR,Digits));
                    }
                 }
              }
            if(OrderType() == OP_SELL)
              {
               if(PSAR > Bid && PSAR < OrderStopLoss())
                 {
                  if(OrderModify(OrderTicket(), OrderOpenPrice(), PSAR, OrderTakeProfit(), 0))
                    {
                     Print("Trailing Stop: Стоп Лосс ордера на продажу #",OrderTicket()," перенесен на цену ", DoubleToString(PSAR,Digits));
                    }
                 }
              }
           }
        }
     }
  }

いずれにせよ、MODE_STOPLEVELを 確認する必要があります。

 
MakarFX #:
本当にエラーはないのでしょうか?

と、あなたの条件では不要です。

いいえ、まだ始まりません。

 
EVGENII SHELIPOV #:

いいえ、まだ起動しません

オーダーオープン機能を表示する
 
EVGENII SHELIPOV #:

いいえ、まだ始まりません。

スクリーンショットから、これらの条件が満たされていない

  OrderStopLoss() != 0