MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1343

 
Forallf :
Bir örnek için orta bana. Hesaplanmış başka bir seviye olacak.

orada herhangi bir seviye ayarlanabilir ve herhangi bir miktarda

 
Andrey Sokolov :

Merhaba. Lütfen bana söyle.

Baz (birinci) para biriminin dolar olduğu ve bir noktanın maliyetinin sabit olmadığı ve fiyatlara bağlı olduğu birkaç ALIŞ pozisyonunun döviz çiftleri için toplam sıfır kâra sahip olacağı Teklif fiyatı nasıl hesaplanır?

Doların kote (ikinci) para birimi olduğu ve böyle bir fonksiyondan türetilen sabit bir pip değerinin olduğu çiftler için,

Bu size yardımcı olacaktır)
 
DanilaMactep :
Fark edip yönlendirdiğiniz için çok teşekkür ederim, bu konuyu düzelttim ve 2 yıllık bir testte 130 26 hata vardı. Aynı zamanda, normalde 115 anlaşma açıldı

bekleyen emirler, mevcut fiyattan STOPLEVEL'den daha az bir mesafede verilirse, 130 hatası olacaktır.

bu yüzden sana bu kodu verdiler

Yoksa dikkate almanın başka bir yolu var mı

MarketInfo( _Symbol , MODE_STOPLEVEL);
 
Merhaba! Piyasa emirlerini açtıktan belirli bir süre sonra (24 saat, 48 saat) kapatmak için bir koda ihtiyacınız var. Zaman ayarlanabilir olmalıdır.
 
Max330 :
Merhaba! Piyasa emirlerini açtıktan belirli bir süre sonra (24 saat, 48 saat) kapatmak için bir koda ihtiyacınız var. Zaman ayarlanabilir olmalıdır.

aşağı yukarı böyle

 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 :
Bu size yardımcı olacaktır)

maalesef yardımcı olmadı. Bu genellikle açılış fiyatlarına odaklanır

 
Andrey Sokolov :

maalesef yardımcı olmadı. Bu genellikle açılış fiyatlarına odaklanır

O zaman neye ihtiyacın olduğunu anlamadım.

Andrey Sokolov :

Birkaç ALIM pozisyonunun toplam sıfır kâra sahip olacağı Teklif fiyatı nasıl hesaplanır?

onlar. başa baş?

 
MakarFX :

O zaman neye ihtiyacın olduğunu anlamadım.

onlar. başa baş?

toplam kâr + takas + komisyonlarının == 0 olacağı bir veya daha fazla tek yönlü emir (satın alma teklifi) için kapanış fiyatını hesaplayın.

Bu sorun, temel para biriminin dolar olduğu ve pip değerinin değiştiği çiftler için ortaya çıktı.

 
Forallf :
Bir örnek için orta bana. Hesaplanmış başka bir seviye olacak.

Gösterge, herhangi bir sayıda trend çizgisi için ortayı çizer:

 #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);
   }
 
Merhaba. Böyle bir soru: broker listesinde sadece Just2Trade'i seçebilirsiniz. Diğer brokerleri ararken hiçbir şey olmuyor. Tüm klasörleri ve dosyaları (gizli olanlar dahil) yeniden yüklemeyi, temizlemeyi denedim. Böyle bir sorunla karşılaşan var mı?
Dosyalar: