Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1153

 
kalmyk87 :

Selamlar! mql5 yetkilendirmesi , sinyallere abone olmak için metatrader4 programında başarısız oluyor ... bana ne yapacağımı söyle!


Ayrıntılar ve ekran görüntüleri ile birlikte hizmet masasına (soldaki profilde) bir istek yazın.

 

baykuşların birkaç çift ve tercihen köylerden ayrı olarak satın alma programı başına 2 baykuş için pulluk sürmesi gerekir.

ve sonsuzluğa açıldığı için


int _OrdersTotal=SiparişToplam();

for (int i=_SiparişlerToplam-1; i>=0; i--) {

if (OrderSelect(i,SELECT_BY_POS)) {

if (OrderMagicNumber() == Sihirli) {

if (OrderSymbol() == Symbol()) {

if (OrderType() == OP_BUY) {

}}}}}}

if(MaPrevious>MaPrevious1) //açılma koşulu

{

bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point ,Ask+TakeProfit*Puan,"macd sample",Magic,0,Green);

if(bilet>0)

{

if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))

Print("Satın alma emri açıldı : ",OrderOpenPrice());

}

başka

Print("SATIN AL emri açılırken hata oluştu : ", GetLastError() );

dönüş;

}

 

kim yapabilir yardım

 

Hepinize iyi günler!

Göstergede bir sinyal çıkışı uygulamanın mümkün olduğunu biliyorum:

a). kapanmasını beklemeden mevcut çubuktaki görünümüyle. Bu durumda, çubuk kapandıktan sonra sinyal iptal edilebilir;

b). sinyalin göründüğü barın kapanmasından sonra.

a) seçeneğiyle ilgileniyorum. Çubuğun kapanmasını beklemeden bir göstergede bir uyarı nasıl görüntülenir?

Gösterge kodunun 39. satırında parametre seçimi olarak biçimlendirmeye çalıştım ama işe yaramadı. Nasıl doğru yapılır?


harici int kaydırma = 0; // Sinyalin sayılacağı çubukta: 0 - geçerli olanda; 1 - kapalı


Yardımın için çok minnettar olurum!

Dosyalar:
 
Tornado :

Hepinize iyi günler!

Göstergede bir sinyal çıkışı uygulamanın mümkün olduğunu biliyorum:

a). kapanmasını beklemeden mevcut çubuktaki görünümüyle. Bu durumda, çubuk kapandıktan sonra sinyal iptal edilebilir;

b). sinyalin göründüğü barın kapanmasından sonra.

a) seçeneğiyle ilgileniyorum. Çubuğun kapanmasını beklemeden bir göstergede bir uyarı nasıl görüntülenir?

Gösterge kodunun 39. satırında parametre seçimi olarak biçimlendirmeye çalıştım ama işe yaramadı. Nasıl doğru yapılır?


harici int kaydırma = 0; // Sinyalin sayılacağı çubukta: 0 - geçerli olanda; 1 - kapalı


Yardımın için çok minnettar olurum!


bende çok böyle anladım

 //+---------------------------------------------------------------------------------+
//+ MA2_Signal                                                                      +
//+ Индикатор сигналов при пересечении 2-х средних                                  +
//+                                                                                 +
//+ Внешние параметры:                                                              +
//+  ExtPeriodFastMA - период быстой средней                                        +
//+  ExtPeriodSlowMA - период медленной средней                                     +
//+  ExtModeFastMA   - режим быстой средней                                         +
//+  ExtModeSlowMA   - режим медленной средней                                      +
//+   Режимы: 0 = SMA, 1 = EMA, 2 = SMMA (сглаженная), 3 = LWMA (взвешенная)        +
//+  ExtPriceFastMA  - цена быстрой средней                                          +
//+  ExtPriceSlowMA  - цена медленной средней                                       +
//+   Цены: 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = HL/2, 5 = HLC/3, 6 = HLCC/4 +
//+---------------------------------------------------------------------------------+
#property copyright "Copyright © 2015, Karakurt (mod. GromoZeka 2017)"
#property link        ""

//---- Определение индикаторов
#property indicator_chart_window
#property indicator_buffers 4
//---- Цвета
#property indicator_color1 Red // 5
#property indicator_color2 Green         // 7
#property indicator_color3 DeepSkyBlue
#property indicator_color4 Magenta
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2


//---- Параметры
extern int     ExtPeriodFastMA = 8 ;
extern int     ExtPeriodSlowMA = 20 ;
extern int     ExtModeFastMA   = 1 ; // 0 = SMA, 1 = EMA, 2 = SMMA, 3 = LWMA
extern int     ExtModeSlowMA   = 1 ; // 0 = SMA, 1 = EMA, 2 = SMMA, 3 = LWMA
extern int     ExtPriceFastMA  = 0 ; // 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = HL/2, 5 = HLC/3, 6 = HLCC/4
extern int     ExtPriceSlowMA  = 0 ; // 0 = Close, 1 = Open, 2 = High, 3 = Low, 4 = HL/2, 5 = HLC/3, 6 = HLCC/4
extern int shift= 0 ;       // На каком баре считать сигнал: 0 - на текущем; 1 - на закрытом
extern bool    EnableAlert= true ;
extern bool    EnableSendNotification= false ;
extern bool    EnableSendMail  =   false ;
extern bool    EnableSound     = false ;
extern string ExtSoundFileNameUp = "Покупаем.wav" ;
extern string ExtSoundFileNameDn = "Продаем.wav" ;

//---- Буферы
double FastMA[];
double SlowMA[];
double CrossUp[];
double CrossDown[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- Установка параметров прорисовки
//     Средние
   SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexStyle ( 1 , DRAW_LINE );
//     Сигналы
   SetIndexStyle ( 2 , DRAW_ARROW , EMPTY );
   SetIndexArrow ( 2 , 233 );
   SetIndexStyle ( 3 , DRAW_ARROW , EMPTY );
   SetIndexArrow ( 3 , 234 );

//---- Задание буферов
   SetIndexBuffer ( 0 ,FastMA);
   SetIndexBuffer ( 1 ,SlowMA);
   SetIndexBuffer ( 2 ,CrossUp);
   SetIndexBuffer ( 3 ,CrossDown);

   IndicatorDigits ( MarketInfo ( Symbol (), MODE_DIGITS ));

//---- Название и метки
   IndicatorShortName ( "MA2_SignalV2(" +ExtPeriodFastMA+ "," +ExtPeriodSlowMA);
   SetIndexLabel ( 0 , "MA(" +ExtPeriodFastMA+ "," +ExtPeriodSlowMA+ ")" +ExtPeriodFastMA);
   SetIndexLabel ( 1 , "MA(" +ExtPeriodFastMA+ "," +ExtPeriodSlowMA+ ")" +ExtPeriodSlowMA);
   SetIndexLabel ( 2 , "Buy" );
   SetIndexLabel ( 3 , "Sell" );

   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   double AvgRange;
   int     iLimit;
   int     i;
   int     counted_bars= IndicatorCounted ();

//---- check for possible errors
   if (counted_bars< 0 )
       return ( - 1 );

//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;

   iLimit= Bars -counted_bars;

   for (i=iLimit; i>= 0 ; i--)
     {
      FastMA[i] = iMA ( NULL , 0 , ExtPeriodFastMA, 0 , ExtModeFastMA, ExtPriceFastMA, i );
      SlowMA[i] = iMA ( NULL , 0 , ExtPeriodSlowMA, 0 , ExtModeSlowMA, ExtPriceSlowMA, i );
      AvgRange=( iMA ( NULL , 0 , 10 , 0 , MODE_SMA , PRICE_HIGH ,i)- iMA ( NULL , 0 , 10 , 0 , MODE_SMA , PRICE_LOW ,i))* 0.1 ;
      CrossDown[i+ 1 ]= EMPTY_VALUE ;
      CrossUp[i+ 1 ]= EMPTY_VALUE ;

       if ((FastMA[i+ 1 ]>=SlowMA[i+ 1 ]) && (FastMA[i+ 2 ]<=SlowMA[i+ 2 ]) && (FastMA[i]>SlowMA[i])) // пересечение вверх
        { //
         CrossUp[i+ 1 ]=SlowMA[i+ 1 ]-Range* 0.75 ;
        }

       if ((FastMA[i+ 1 ]<=SlowMA[i+ 1 ]) && (FastMA[i+ 2 ]>=SlowMA[i+ 2 ]) && (FastMA[i]<SlowMA[i])) // пересечение вниз
        { //
         CrossDown[i+ 1 ]=SlowMA[i+ 1 ]+Range* 0.75 ;
        }
     }
   static datetime TimeAlert= 0 ;
   if (TimeAlert!= Time [ 0 ])
     {
      TimeAlert= Time [ 0 ];
       if (CrossUp[shift]!= EMPTY_VALUE )
        {
         if (EnableAlert) Alert ( "MA 8-20 " , Symbol (), " " , Period (), "M - BUY " ); // звуковой сигнал
         if (EnableSound) PlaySound (ExtSoundFileNameUp);
         if (EnableSendNotification) SendNotification ( "MA 8-20 EUR_H1 - BUY" ); // push-уведомление
         if (EnableSendMail) SendMail ( "MA 8-20: " , Symbol ()+ " , " + Period ()+ " мин.-  BUY!" ); // email-уведомление
        }
       if (CrossDown[shift]!= EMPTY_VALUE )
        {
         if (EnableAlert) Alert ( "MA 8-20 " , Symbol (), " " , Period (), "M - SELL " ); // звуковой сигнал
         if (EnableSound) PlaySound (ExtSoundFileNameDn);
         if (EnableSendNotification) SendNotification ( "MA 8-20 EUR_H1 - SELL" ); // push-уведомление
         if (EnableSendMail) SendMail ( "MA 8-20: " , Symbol ()+ " , " + Period ()+ " мин.- SELL!" ); // email-уведомление
        }
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+

Bazı fazlalıklar kaldırıldı. Basitleştirilmiş bir şey

 
Victor Nikolaev :

bende çok böyle aldım

Bazı fazlalıklar kaldırıldı. Basitleştirilmiş bir şey


Çok teşekkürler! Deneyeceğim.

 
Victor Nikolaev :

bende çok böyle anladım

Bazı fazlalıklar kaldırıldı. Basitleştirilmiş bir şey


Bu talihsiz, ama işe yaramıyor. Daha hızlı kontrol etmek için M5 zaman diliminde denedim. Sinyal, yalnızca çubuk kapandıktan sonra ortaya çıktı ve ortalamalar mevcut çubukta kesiştiğinde değil. Büyük çerçeveler üzerinde test ediyorum.

 
//+------------------------------------------------------------------+
class A
  {
public : int        propA;
public :
                     A( void ) {propA = 15 ;};
                    ~A( void ) {};
  };
//+------------------------------------------------------------------+
class B: public A
  {
public :
                     B( void ){};
                    ~B( void ){};
  };
//+------------------------------------------------------------------+
void OnStart ()
  {
   B newObj;
   GetA(newObj);
//---
   //B newObjArray[3];
   //GetA_Array(newObjArray);
  }
//+------------------------------------------------------------------+
void GetA(A &obj)
  {
   Print (obj.propA);
  }
//+------------------------------------------------------------------+
void GetA_Array(A &obj[])
  {
   for ( int i= 0 ;i< ArraySize (obj);i++)
       Print (obj[i].propA);
  }
//+------------------------------------------------------------------+

OnStart() içinde kalan satırların yorumunu kaldırırsak "newObjArray - parametre dönüştürmeye izin verilmez" ifadesini alırız.

2 soru: neden ve nasıl düzeltilir?

 
Tornado :

Bu talihsiz, ama işe yaramıyor. Daha hızlı kontrol etmek için M5 zaman diliminde denedim. Sinyal, yalnızca çubuk kapandıktan sonra ortaya çıktı ve ortalamalar mevcut çubukta kesiştiğinde değil. Büyük çerçeveler üzerinde test ediyorum.


Sanki birbirimizi anlamıyoruz.

 

Merhaba arkadaşlar.

Stoploss, teknik kar ve takip eden değerler nasıl puan olarak değil, yüzde olarak gösterilir.

Bu formül çok karışık ve hiç çalışmıyor

StopLoss=NormalizeDouble(Bid-(Bid-TrailingStop)/100*TRAL_PERCENT, Rakamlar );

En basit yüzde türünü istiyorum.

Çift Stoploss = 0.05;

--------

Yüzde olarak Kar=Bid-Stoploss (beceriksiz örnek, ancak anlamak için)

Teşekkür ederim.