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

 
Forallf:
真ん中は例のごとく私用です。違う、計算されたレベルがあるはずです。

どんなレベルでも、どんな量でも、そこに設定することができます。

 
Andrey Sokolov:

こんにちは。Bid priceの計算方法を教えてください。

基準(第一)通貨がドル、ピップ値が一定ではなく価格に依存する通貨ペアで、複数のBUYポジションの利益が合計ゼロとなるBid価格はどのように計算すればよいですか?

ドルがクォート(第2)通貨で、ピップ値が一定であるペアについて、私はこの関数を導出しました。

これは 、あなたの助けになります)
 
DanilaMactep:
気づいて教えていただき、ありがとうございました。同時に115件の取引が正常に開始された

現在値からSTOPLEVEL未満の距離に注文を出した場合、エラー130が発生します。

だからあなたはこのコードを 与えられたのです

または他の方法でそれを考慮する必要がある場合

MarketInfo(_Symbol, MODE_STOPLEVEL);
 
こんにちは!オープン後一定時間(24時間、48時間)経過後に成行注文をクローズするコードが必要です。時間を調整できるようにする。
 
Max330:
こんにちは、私は彼らが開いた後、特定の時間(24時間、48時間)に市場注文を閉じるコードが必要です。時間を調整 できるようにする。

このように

for(int pos=OrdersTotal()-1;pos>=0;pos--)
    if(OrderSelect(pos,SELECT_BY_POS)==true)
       if(OrderSymbol()==_Symbol)
         if(TimeCurrent()-(определенное время в секундах) >= OrderOpenTime()) 
            OrderClose(order_id,1,Ask,3,Red);
 
MakarFX:
これは 、あなたの助けになります)

残念ながら役に立たなかった。こちらは概ね初値で誘導される

 
Andrey Sokolov:

残念ながら役に立たなかった。こちらは概ね初値を志向している。

では、何が必要なのか理解できません。

アンドレイ・ソコロフ

複数の買いポジションの利益が合計でゼロになるビッド価格の計算方法

i.e. Breakeven?

 
MakarFX:

では、何がしたいのか理解できません。

つまり、損益分岐点?

1つまたは複数の一方向注文(買い注文)の終値を計算し、その合計利益+節約額+手数料=0となるようにすること。

この問題は、基準通貨が ドルであり、ポイント値が変化するペアで発生します。

 
Forallf:
真ん中は例のごとく私の分です。もう一段階、計算されたレベルがあるはずです。

この指標は、任意の数のトレンドラインについて、その中央を描画します。

#property version   "1.00"
#property strict
#property indicator_chart_window

string symbol;
ENUM_TIMEFRAMES frame;
int digits;

long ChartId;
int Window;

datetime time1, time2;
double price;

int OnInit()
   {
   //идентификатор графика и номер окна индикатора
   ChartId=ChartID();
   Window=0;
   symbol=Symbol();
   frame=(ENUM_TIMEFRAMES)Period();
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   ChartSetInteger(ChartId,CHART_EVENT_OBJECT_CREATE,true);
   return(INIT_SUCCEEDED);
   }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
   {

   return(rates_total);
   }

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
   {
   if((id==CHARTEVENT_OBJECT_CREATE || id==CHARTEVENT_OBJECT_DRAG) && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_TREND && StringFind(sparam,"Middle")==-1)
      {
      price=(ObjectGet(sparam,OBJPROP_PRICE1)+ObjectGet(sparam,OBJPROP_PRICE2))/2;
      time1=GetPointTimeOnStraight((datetime)ObjectGet(sparam,OBJPROP_TIME1),ObjectGet(sparam,OBJPROP_PRICE1),(datetime)ObjectGet(sparam,OBJPROP_TIME2),ObjectGet(sparam,OBJPROP_PRICE2),price,symbol,frame);
      time2=time1+PeriodSeconds(frame)*10;
      RedrawLine(ChartId,Window,sparam+"_Middle",time1,price,time2,price,(color)ObjectGet(sparam,OBJPROP_COLOR),(int)ObjectGet(sparam,OBJPROP_WIDTH),(string)ObjectGet(sparam,OBJPROP_TOOLTIP),digits);
      }
   }
      
//находит дату точки (координату X) на прямой, на заданную цену (координата Y)
datetime GetPointTimeOnStraight(datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, double ePrice3, string eSymbol, int eTimeFrame)
   {
   if(ePrice2-ePrice1==0) return(0.0);
   //индекс бара соответствующий заданному времени, возможно задавать будующее время
   int eIndex1=(eTime1>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime1)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime1);
   int eIndex2=(eTime2>iTime(eSymbol,eTimeFrame,0))?(int)((iTime(eSymbol,eTimeFrame,0)-eTime2)/PeriodSeconds(eTimeFrame)):iBarShift(eSymbol,eTimeFrame,eTime2);
   int eIndex3=eIndex1+(int)((eIndex2-eIndex1)*(ePrice3-ePrice1)/(ePrice2-ePrice1));
   if(eIndex3>=0)
      {
      return(iTime(eSymbol,eTimeFrame,eIndex3));
      }
   else
      {
      return(iTime(eSymbol,eTimeFrame,0)-eIndex3*PeriodSeconds(eTimeFrame));
      }
   }

//перерисовывает линию по новым координатам, если её нет, то создаёт
void RedrawLine(long eChartId, int eWindow, string eName, datetime eTime1, double ePrice1, datetime eTime2, double ePrice2, color eColor, int eWidth, string eTooltip, int eDigits)
   {
   if(ObjectFind(eChartId,eName)==-1)
      {
      if(!ObjectCreate(eChartId,eName,OBJ_TREND,eWindow,0,0)) return;
      ObjectSetInteger(eChartId,eName,OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(eChartId,eName,OBJPROP_WIDTH,eWidth);
      ObjectSetInteger(eChartId,eName,OBJPROP_BACK,false);
      ObjectSetInteger(eChartId,eName,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(eChartId,eName,OBJPROP_SELECTED,false);
      ObjectSetInteger(eChartId,eName,OBJPROP_RAY_RIGHT,false);
      ObjectSetInteger(eChartId,eName,OBJPROP_HIDDEN,true);
      }
   if(ObjectFind(eChartId,eName)==-1) return;   
   if(ObjectGetInteger(eChartId,eName,OBJPROP_TIME)!=eTime1) ObjectSetInteger(eChartId,eName,OBJPROP_TIME,eTime1);
   if(NormalizeDouble(ObjectGetDouble(eChartId,eName,OBJPROP_PRICE)-ePrice1,eDigits)!=0) ObjectSetDouble(eChartId,eName,OBJPROP_PRICE,ePrice1);
   if(ObjectGetInteger(eChartId,eName,OBJPROP_TIME,1)!=eTime2) ObjectSetInteger(eChartId,eName,OBJPROP_TIME,1,eTime2);
   if(NormalizeDouble(ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,1)-ePrice2,eDigits)!=0) ObjectSetDouble(eChartId,eName,OBJPROP_PRICE,1,ePrice2);
   if(ObjectGetInteger(eChartId,eName,OBJPROP_COLOR)!=eColor) ObjectSetInteger(eChartId,eName,OBJPROP_COLOR,eColor);
   if(ObjectGetString(eChartId,eName,OBJPROP_TOOLTIP)!=eTooltip) ObjectSetString(eChartId,eName,OBJPROP_TOOLTIP,eTooltip);
   }
 
皆さん、こんにちは。Question: ブローカーのリストからJust2Tradeしか選択できません。他のブローカーを検索しても何も出てきません。再インストールを試み、すべてのフォルダとファイル(隠しファイルも含む)をクリアしました。このような問題を抱えた方はいらっしゃいますか?
ファイル: