Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 256

 
atztek # :
i3 işlemcili eski bir dizüstü bilgisayarda, MT5 tarafından desteklenmeyen WinXP 32 bit hala kuruluydu. Geçenlerde belleği 6 GB'a yükselttim, MT4 ve MT5'in çalışacağı 64 bit işletim sistemi kurmak istiyorum. Hangisi tercih edilir - Win7 veya Win8.1

7'ye daha yakınım. Ofiste ve 8ka ve 10ka ve 7ka. 7ke'deki terminaller daha kararlı. Bilinmeyen nedenlerden dolayı, 7k'deki test cihazları, zayıf bilgisayarlarda daha hızlıdır. 8ka genellikle geçişlidir, bir şekilde çok değil. Daha fazla kaynak tüketir. 10ka kendisi için daha fazla kaynak gerektirir.

 
atztek # :
i3 işlemcili eski bir dizüstü bilgisayarda , MT5 tarafından desteklenmeyen WinXP 32 bit hala kuruluydu. Geçenlerde belleği 6 GB'a yükselttim, MT4 ve MT5'in çalışacağı 64 bit işletim sistemi kurmak istiyorum. Hangisi daha çok tercih edilir - Win7 veya Win8.1?

Dizüstü bilgisayarınızın üreticisinin web sitesine gidin ve hangi maksimum işletim sisteminin altında resmi sürücüler olduğuna bakın, bu işletim sistemi tercih edilir. Win 8.1 için sürücüler varsa, Win 10'u deneyebilirsiniz. Sürücüler Win 7 ile bitiyorsa, işletim sistemi seçimi küçüktür.

 

iyi günler, lütfen yardım edin.

Bu EA'ya bir kar al eklemeniz ve EA'yı başlatırken değiştirilecek parametreleri görüntülemeniz gerekir.

iki uyarı var 'OrderClose' dönüş değeri kontrol edilmelidir ayrıca lütfen düzeltin


harici çift Lot = 0.1;

harici çift MaximumRisk = 0,3;

dış çift Azaltma Faktörü = 100;

çift st1,st2;

//+------------------------------------------- --------------------+

//| Açık pozisyonları hesaplayın |

//+------------------------------------------- --------------------+

int CalculateCurrentOrders(dize sembolü)

{

int satın alır = 0, satar = 0;

//----

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;

if(OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) satın alır++;

if(OrderType()==OP_SEL) satıyor++;

}

}

//---- iade sipariş hacmi

if(satın alır>0) iade(satın alır);

başka iade(-satış);

}

//+------------------------------------------- --------------------+

//| Optimum parti boyutunu hesaplayın |

//+------------------------------------------- --------------------+

çift LotOptimize Edilmiş()

{

çift lot=lot;

int siparişler=TarihToplam(); // geçmiş sipariş toplamı

int kayıplar=0; // Kesintisiz siparişlerin sayısı

//---- parti boyutunu seç

lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,3);

//---- Kesintisiz siparişlerin sayısını hesapla

if(DecreaseFactor>0)

{

for(int i=sipariş-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Geçmişte hata!"); kırmak; }

if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) devam ediyor;

//----

if(OrderProfit()>0) kırılması;

if(OrderProfit()<0) kayıpları++;

}

if(kayıplar>1) lot=NormalizeÇift(lot-lot*kayıplar/AzalışFaktörü,1);

}

//---- parti boyutunu iade et

if(lot<0.1) lot=0.1;

dönüş(lot);

}

//+------------------------------------------- --------------------+

//| Açık sipariş koşullarını kontrol edin |

//+------------------------------------------- --------------------+

geçersiz CheckForOpen()

{

iç;

if(Volume[0]>1) dönüşü;


//---- satın almak -----------------------

if ( (iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))

if ((Open[0]<Aç[1])&&(Kapat[0]<Kapat[1]))

//

{

res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,15,0,"",0,0,Mavi);

dönüş;

}

//---- satmak -----------------------

if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))

if((Open[0]>Aç[1])&&(Kapat[0]>Kapat[1]))

{

res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,15,0,"",0,0,Red);

dönüş;

}

}

//------------ Kapanış pozisyonları ---------------------------------- ------

geçersiz CheckForClose2()

{

if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Beyaz);

if(OrderType()==OP_SEL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Mavi);

//CheckForOpen();

}


//

//+------------------------------------------- --------------------+

//| Yakın sipariş koşullarını kontrol edin |

//+------------------------------------------- --------------------+

geçersiz CheckForClose1()

{

if(Volume[0]>1) dönüşü;

// kayıp olup olmadığını kontrol et

if ((AccountProfit()<0)&&(MathAbs(AccountProfit())>=(AccountMargin()*MaximumRisk)))

{

CheckForClose2();

Print("zarar", AccountProfit());

}/**/

//---- sipariş tipini kontrol et

if(OrderType()==OP_BUY)

{

if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)<iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))

if ((Open[0]>Open[1])&&(Close[0]>Close[1]))

CheckForClose2();

}

if(OrderType()==OP_SEL)

{

if ((iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,15,26,10,MODE_SMA,0,MODE_SIGNAL,0)))

if ((Open[0]<Aç[1])&&(Kapat[0]<Kapat[1]))

CheckForClose2();

}


}

//+------------------------------------------- --------------------+

//| başlatma işlevi |

//+------------------------------------------- --------------------+


geçersiz başlangıç()

{


//---- açık siparişleri mevcut sembole göre hesapla

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

yoksa CheckForClose1();

//---

}

//+------------------------------------------- +

MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
MetaQuotes — разработчик торговых платформ для брокеров, банков, бирж и хедж-фондов
  • www.metaquotes.net
Торговая платформа MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на форексе и фондовых биржах
 
bob88 # :



 extern double Lots               = 0.1 ;

extern double MaximumRisk        = 0.3 ;

extern double DecreaseFactor     = 100 ;

extern int stopLoss = 15 ;
extern int takeProfit = 30 ;


//+------------------------------------------------------------------+

//| Check for open order conditions                                  |

//+------------------------------------------------------------------+

void CheckForOpen()

  {

   int res;
   double openPrice, sl, tp;

 if (Volume[ 0 ]> 1 ) return ;



//---- покупаем -----------------------

  

   if ( ( iStochastic ( NULL , 0 , 15 , 26 , 10 , MODE_SMA , 0 ,MODE_MAIN, 0 )> iStochastic ( NULL , 0 , 15 , 26 , 10 , MODE_SMA , 0 ,MODE_SIGNAL, 0 ))) 

     if   ((Open[ 0 ]<Open[ 1 ])&&(Close[ 0 ]<Close[ 1 ])) 

    

   //  

     {
      openPrice = NormalizeDouble (Ask, Digits );
      sl = NormalizeDouble (openPrice - stopLoss * Point , Digits );
      tp = NormalizeDouble (openPrice + takeProfit * Point , Digits );
      res= OrderSend ( Symbol (),OP_BUY,LotsOptimized(),openPrice, 3 ,sl,tp, "" , 0 , 0 ,Blue);

       return ;

     }

//---- продаем ------------------------

if (( iStochastic ( NULL , 0 , 15 , 26 , 10 , MODE_SMA , 0 ,MODE_MAIN, 0 )< iStochastic ( NULL , 0 , 15 , 26 , 10 , MODE_SMA , 0 ,MODE_SIGNAL, 0 )))  

     if ((Open[ 0 ]>Open[ 1 ])&&(Close[ 0 ]>Close[ 1 ]))

     {
      openPrice = NormalizeDouble (Bid, Digits );
      sl = NormalizeDouble (openPrice + stopLoss * Point , Digits );
      tp = NormalizeDouble (openPrice - takeProfit * Point , Digits );
      res= OrderSend ( Symbol (),OP_SELL,LotsOptimized(),openPrice, 3 ,sl,tp, "" , 0 , 0 ,Red);

       return ;

     }

     

  }

SL ve TP hesaplaması eklendi, ancak çeklerini eklemekten zarar gelmez. Bunu nasıl yapacağınızı https://www.mql5.com/ru/articles/2555#invalid_SL_TP_for_position makalesinden okuyabilirsiniz.

Uyarınız kritik değil. Sadece OrderClose sonucu yok sayılır, bu nedenle uyarı. Örneğin, CheckForClose2 işlevinin OrderClose yürütme sonucunu döndürmesini sağlayabilirsiniz. Veya olduğu gibi bırakabilirsiniz.

Fark ettiğim başka bir şey de CheckForClose2, CheckForOpen, vb. fonksiyonların garip isimleri. " Kontrol" kelimesi kontrol etmek anlamına gelir. Ve sizin yerinize alım satım işlemlerini gerçekleştirirler.

Какие проверки должен пройти торговый робот перед публикацией в Маркете
Какие проверки должен пройти торговый робот перед публикацией в Маркете
  • www.mql5.com
Все продукты Маркета перед публикацией проходят обязательную предварительную проверку для обеспечения единого стандарта качества. В этой статье мы расскажем о наиболее частых ошибках, которые допускают разработчики в своих технических индикаторах и торговых роботах. А также покажем как самостоятельно проверить свой продукт перед отправкой в Маркет.
 
Herkese merhaba. Birisi danışmanı düzenlemeye yardımcı olabilir. EA'nın siparişleri kendisi açmaması, yalnızca manuel olarak açılan siparişlerle çalışması için sipariş açma işlevini kaldırmak gerekir. Şimdiden teşekkürler.
Dosyalar:
 
Иван Макаров # :
Herkese merhaba. Birisi danışmanı düzenlemeye yardımcı olabilir. EA'nın siparişleri kendisi açmaması, yalnızca manuel olarak açılan siparişlerle çalışması için sipariş açma işlevini kaldırmak gerekir. Şimdiden teşekkürler.

Emir açma fonksiyonunu kaldırıyoruz ve sihri 0'a ayarlıyoruz. Robot manuel olarak açılan emirleri alacak ve onlara eşlik edecek. Robotun yalnızca tek tek siparişlere eşlik etmesine ihtiyacınız varsa ve hepsi arka arkaya değil, o zaman örneğin, robotun her biri için OnChartEvent'te CHARTEVENT_OBJECT_CLICK olayını oluşturması ve işlemesi gereken ilgili düğmeye basarak Al ve Sat'a gireriz. . Bu durumda büyünün sadece kendi emirlerinizle çalışabilmesi için 0'dan büyük olması gerekir.

 
Selamlar. Birisi bana mt4 danışmanına zaman ticareti işlevini nasıl ekleyeceğimi söyleyebilir mi? Danışmanın çalışması için 00.00 ile 23.00 arasında diyelim ve kalan saat hiçbir şey yapmadı. Belki birinin bir kodu vardır ve nasıl uygulanacağı. Teşekkür ederim.
 
Иван Макаров zaman ticareti işlevini nasıl ekleyeceğimi söyleyebilir mi? Danışmanın çalışması için 00.00 ile 23.00 arasında diyelim ve kalan saat hiçbir şey yapmadı. Belki birinin bir kodu vardır ve nasıl uygulanacağı. Teşekkür ederim.

https://www.mql5.com/ru/forum/131859/page9#434297

isTradeTimeString()

isTicaretZamanıInt()

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 

Merhaba.

Böyle bir aksaklık ... Birini test ediyorum! 3 bilgisayarda uzman. 2'de açıkça koda göre çalışırlar, ancak birinde her zaman hesaplamalarla bazı söveler vardır - temel olarak durdurma kayıplarını yanlış hesaplar veya yanlış pozitifler.

Demir yeni değil ama eski de değil.

Bununla karşılaşan var mı?

 
Zalevsky1234 durdurma kayıplarını yanlış hesaplar veya yanlış pozitifler.

Demir yeni değil, eski de değil.

Bununla karşılaşan var mı?

Üçü de aynı komisyoncu/bayi sunucusuna bağlı mı? (Yani, hikaye aynı mı?) Değilse, yapılacak ilk şey bu yönde kazmaktır.

Neden: