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

 
Alexey Kozitsyn:

ENUM_TIMEFRAMESの列挙型変数を使用する。

ありがとうございました。
 
Alexey Kozitsyn:

ENUM_TIMEFRAMESの列挙型変数を使用する。

すべての素数のうち、数個だけを列挙しておくことは可能ですか?そのため、パラメータ設定で選択すると、例えば2つしか表示されません。
 
barudkinarseniy:
すべてのプライムのうち、数枚だけを残すことはできますか?そのため、設定でパラメータを選択すると、例えば2つしか表示されない。

できますが、独自の列挙を記述する必要があります。

enum ENUM_ORDER_TYPE
{
   Buy  = ORDER_TYPE_BUY,
   Sell = ORDER_TYPE_SELL
};

input ENUM_ORDER_TYPE typeOrder; // Выбери тип ордера

mql4では、ORDER_TYPE_BUYの 代わりに、OP_BUYと書くべきで、それぞれSell

 
Alexey Viktorov:

できますが、独自の列挙を記述する必要があります。

mql4の場合、ORDER_TYPE_BUYの 代わりにOP_BUYと記述し、Sellの場合はそれぞれ

了解しました、ありがとうございます))
 
OlegKirill

このエラーを修正する方法を教えてください。

修正注文 #1506271459 buy 0.11 EURJPY at 122.824 sl: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 failed [Invalid S/L or T/P] (無効なS/LまたはT/P)。


 
Karputov Vladimir:
OlegKirill

このエラーを修正する方法を教えてください。

注文番号1506271459のリクエスト 0.11 EURJPY buy at 122.824 sl: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 failed [Invalid S/L or T/P] 注文番号1506271459のリクエストは、122.824で失敗しました。


内容にもよりますが、ストップが最小値より小さく設定されていて、端末がストップゼロを返してくる場合は難しいです。価格ステップに問題がある場合は、この機能を使っています。

double normalize(string symbol,double value)
  {
   double ts=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
   if(ts==0)return(value);
   return(NormalizeDouble(value/ts,0)*ts);
  }

ポジションを 建てるときの使用例

   if(type==ORDER_TYPE_BUY)
     {
      double ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
      if(NormalizeDouble(normalize(_Symbol,ask),digits)!=NormalizeDouble(ask,digits))return;
      trade.Buy(volume,_Symbol,0,0,0,CommentOrder);
     }

モディファイ時の使用例

         if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
           {
            sl=NormalizeDouble(normalize(symbol,bid-sl*point),digits);
            tp=PositionGetDouble(POSITION_TP);
            //Print(__FUNCTION__,": sl = ",sl," tp = ",tp);
            if(sl>0)trade.PositionModify(tiket,sl,tp);
           }

..

 
ありがとうございます、試してみます。
 
mql5について。mql4と違い、TimeLocal()は新しいティック/新しいチャートシフト/チャートスケールの 変更時にのみ変化し、連続的に変化しないのはなぜですか?GetTickCount、GetMicrosecondCountも 同様です。TimeLocalの "時計 "を "刻み "なしで均一に連続的に動かす方法はありますか?
 
Dream11 です。

こんにちは、ここで問題です...トレーリングストップ機能があるのですが...

   double tr=0,MATrall=0,op=0,sl=0,
   ask   = NormalizeDouble(Ask,Digits()),
   bid   = NormalizeDouble(Bid,Digits());
   tr = NormalizeDouble(TrailingStop*Point(),Digits());
   MATrall = iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,1);
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS)==true)
        {
         if(OrderSymbol()==Symbol())
           {
             if(OrderMagicNumber()==Magic)
              {
              op    = NormalizeDouble(OrderOpenPrice(),Digits());
              sl    = NormalizeDouble(OrderStopLoss(),Digits());
                 if(OrderType()==OP_BUY)
                 {
                 if((bid-op)>tr)
                 if((bid-sl)>tr)
                 if ((bid-tr)>MATrall)
                 if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MATrall,Digits()),OrderTakeProfit(),0,clrRed)==false)
                 printf("ERROR BUY Modifi");
                 }
                  if(OrderType()==OP_SELL)
                 {
                 if((op-ask)>tr)
                 if((sl-ask)>tr || sl==0)
                 if((ask+tr)<MATrall)
                 if(OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MATrall,Digits()),OrderTakeProfit(),0,clrRed)==false)
                 printf("ERROR SELL Modifi");
                 }
              }
           }
        }
     }

1つのオーダーではなく、無制限にオーダーを検索するように変更する方法 ...


 
loleg1991:
mql5について。mql4と違い、TimeLocal()は新しいティック/新しいチャートシフト/チャートスケールの 変更時にのみ変化し、連続的に変化しないのはなぜですか?GetTickCount、GetMicrosecondCountも 同様です。もしかしたら、TimeLocalの「時計」を「刻み」なしで均一に連続的に動かす方法があるかもしれませんね。
OnTimer()でできるのでは?
理由: