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

 
законопослушный гражданин :

Kodun yazarı, anladığım kadarıyla aşağıdakileri önerdi:

eğer bir baykuş stop ve al ile bir alış işlemi açarsa, o zaman onun kod parçası aynı zamanda aynı yerde (spread'i hesaba katarak) bir alış işlemi yerine stop ve al ile bir satış işlemi açar.

bu nedenle EA'nın giriş noktası arama mantığı değişmez, sadece yayılma dikkate alınarak yön değişir.

tam ihtiyacım olan şey bu

Tüm işlemlerin tersine ihtiyacınız varsa, o zaman sadece burada değiştirin

vOrderOpenSell ve vOrderOpenBuy


//+-----------------------------------------------------------------------------------------------+
void OnTick ()
  {
// Получим значение индикатора
   dMA = iMA ( Symbol (), 0 , iPeriodMA, 0 , MODE_SMA , PRICE_CLOSE , 0 );

// Если нет открытых ордеров, то входим в условие
   if (bCheckOrders() == true )
     {
       // Если появился сигнал на покупку, то откроем ордер на покупку
       if (bSignalBuy() == true )
         vOrderOpenSell();

       // Если появился сигнал на продажу, то откроем ордер на продажу
       if (bSignalSell() == true )
         vOrderOpenBuy();
     }
  }
 
SGarnov :

İlk sonuç. danışman tarafından bekleyen emirlerin verilmesiyle ilgili döviz çiftleri arasında bir çelişki var. örneğin EURUSD'ye bir gecikme attım, danışman algoritmaya göre çalıştı (1.18901 fiyattan al bir anlaşma açıldı, danışman 1.18751'de stop ve 1.19051'lik bir alım ve bir fiyattan satış için bir gecikme belirledi 1.18751 ) her şey planlandığı gibi yolunda.

Ancak fiyatların farklı olduğu ve danışmanın bekleyen bir sipariş vermek dışında her şeyi doğru yaptığı GBPUSD üzerinde bir anlaşma açmanın zamanı geldi. Bekleyen Satış 1.39393 çalıştı, EA çalışmaya başladı, 1.39633'te bir durdurma ve 1.39153'lük bir alım belirledi, ancak bekleyen alımı 1.39633'lük bir fiyata EURUSD ile tamamen kopyaladı ve bekleyen bir satışı 1.18751'lik bir fiyata koydu)

Az önce başka bir sorun keşfettim: EURUSD üzerinde açık bir işlemde, 1.18751'de bir durdurma tetiklendi ve EA'nın 1.18901'de bir durdurma ve 1.18595'lik bir alım belirlediği bekleyen satış emri açıldı. EA, tarihe geçmiş olan hedefe tetiklenmiş bir durak eklemedi.

Sorunlar bunlar.

Gecikmelerde bir hata buldum, ancak ekleme ile çalışıyorum

 
MakarFX :

Tüm işlemlerin tersine ihtiyacınız varsa, o zaman sadece burada değiştirin

vOrderOpenSell ve vOrderOpenBuy


hayır, bir tersine ihtiyacım yok, ancak yayılmayı hesaba katarak işlemleri başka bir terminale kaybetmenin bir "aynasına" ihtiyacım var. bir kod parçasının yazarının temasında olduğu gibi.

ancak testçiler böyle bir imkan sağlamıyor, bunun için test cihazındaki baykuşların başka bir terminalde açılmış gibi işlemleri bir spread ile "yansıtması" gerekiyor, ancak bu baykuşun mantığına göre, diyelim ki bir fotokopi makinesi aracılığıyla bir geri dönüş.

aracı kontrol etmem lazım

 
Alexey Viktorov :

Makar, OrderMagicNumber() öğesine doğru şekilde dikkat çekti, ancak hatayı yanlış anladı. Bu işlevin sözdizimini belgelerde okuyun... siparişler listesinde bir dizin veya belirli bir sipariş için bir bilet olmalı, ancak sihir olmamalıdır. Ve OrderTicket() burada yardımcı olmaz. Onu oraya koymaya çalışmayın.

Mantıken. OrdersHistoryTotal için bir yedek ile derlendi ve terminal ayarlarında son üç gün için geçmiş yapıldı. test edeceğim.

 
законопослушный гражданин :

hayır, bir tersine ihtiyacım yok, ancak yayılmayı hesaba katarak işlemleri başka bir terminale kaybetmenin bir "aynasına" ihtiyacım var. bir kod parçasının yazarının temasında olduğu gibi.

ancak testçiler böyle bir imkan sağlamıyor, bunun için test cihazındaki baykuşların başka bir terminalde açılmış gibi işlemleri bir spread ile "yansıtması" gerekiyor, ancak bu baykuşun mantığına göre, diyelim ki bir fotokopi makinesi aracılığıyla bir tersine çevirme.

aracı kontrol etmem lazım

Piyasaya giriş emirleriyle ilgili sorunlarınız varsa, bunu değiştirmeyi deneyin.

 ///////////////
if (cmd==OP_SELL) // Переворачиваем ордера OP_SELL
{
Ret= OrderSend (symbol,OP_BUY,volume, Ask ,slippage,takeprofit-sprd,stoploss-sprd,comment,magic,expiration,arrow_color);
}
if (cmd==OP_BUY) // Переворачиваем ордера OP_BUY
{
Ret= OrderSend (symbol,OP_SELL,volume, Bid ,slippage,takeprofit+sprd,stoploss+sprd,comment,magic,expiration,arrow_color);
}

Ve tüm siparişlerde bir sorun varsa, STOPLEVEL'i kontrol edin.

 
MakarFX :

......................... ve ek olarak çalışıyorum

Uygulamanın zor olduğu, kodunuz çok daha basit, daha net ve daha mantıklı olduğu sonucuna vardım ama ..... nedense de eklemiyor. Ana şey pes etmemek.

 
SGarnov :

Uygulamanın zor olduğu sonucuna vardım, kodunuz çok daha basit, daha net ve daha mantıklı ama ..... nedense de eklemiyor. Ana şey pes etmemek.

Sovyetler Birliği'ne hizmet ediyorum!
 
SGarnov :

Uygulamanın zor olduğu, kodunuz çok daha basit, daha net ve daha mantıklı olduğu sonucuna vardım ama ..... nedense de eklemiyor. Ana şey pes etmemek.

MakarFX :
Sovyetler Birliği'ne hizmet ediyorum!

Çalışılan durak sayısını da hesaba katmak gerekebilir. Örneğin , danışman tarihte bir durak bulacaktır ve bunlardan ikisi varsa, her ikisini de üç ve dördünü eklemesi gerekir, bunların tümü "kaybı durdurma sayısı" harici ayarına bağlıdır.

 
SGarnov :

Çalışılan durak sayısını da hesaba katmak gerekebilir. Örneğin , danışman tarihte bir durak bulacaktır ve bunlardan ikisi varsa, her ikisini de üç ve dördünü eklemesi gerekir, bunların tümü "kaybı durdurma sayısı" harici ayarına bağlıdır.

tetiklenen durdurma sayısının bir kaydı vardır ve "Karlı olmayan siparişlerin sayısı" ayarlarda belirtilenden fazlaysa, bekleyen siparişler artık verilmez (zaten kontrol edilir).
 

Herkese merhaba, lütfen yardım edin!

Benim böyle bir sorunum var. mql5'ten vps aldım herşey yolunda gidiyor, kendime bir uzman kurdum, 8 çizelge kurdum ve bir uzman kurdum. Ve her şey VPS'ye aktarıldı.

Ve metatrader programını bilgisayardan kaldırmak zorunda kaldım çünkü benim değildi.

Ve şimdi bilgisayarımdan giriş yaptığımda

Her şey çalışıyor, uzman. Çalışıyor, ancak ayarlarda herhangi bir değişiklik yapmak için göremiyorum. Uzman Danışmanı ve çizelgeleri bilgisayarımdan yönetebilmem için nasıl geri alabilirim?

Teşekkür ederim!