Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1457

 
Aleksey Vyazmikin #:

Kod tabanında, orijinal olarak MT4'te yazılmış ve daha sonra MT5'te yeniden yazılmış Uzman Danışmanlar ve göstergeler vardır - bunları eğitim için kullanabilirsiniz.

Birçok yönden diller benzerdir, kendinize MT5'te anladığınız kodu yeniden yazma görevini verin - ve talimatlar ve portaldaki aramayı aktif olarak kullanın - makaleler de dahil olmak üzere her zaman cevabı bulacaksınız.

Değerli tavsiyeleriniz için çok teşekkür ederim. Sakıncası yoksa, lütfen bana 4'te olan ve sonra 5'te olan Uzman Danışman'ın (gösterge değil) bir bağlantısını gönderin (en basitinde mümkünse) veya EA'nın kendisi 4'te ve sonra 5'te aynı
Çalışmaya başladım. Yeni başlayanlar için ticaret işlemlerinin STrade ticaret sınıfında açılmasının en kolay olduğunu fark ettim ve hatta bu sınıfın yardımıyla emirleri ve anlaşmaları açmayı başardım
Ancak bir emrin açılmasını şartlandırdığım anda, emirler açılmayı durdurdu, lütfen bana neyi yanlış yaptığımı söyleyin. İşte hiçbir koşul yokken emirleri açan kod.

#include<Trade\Trade.mqh>
 CTrade  trade;

void OnTick()
{
MqlDateTime time_now;  
if(time_now.hour==10||time_now.hour==11&&time_now.min==0)


trade.Buy(0.1);


}

Bu noktayı henüz anlayamadım.... BAY emirleri açıldığında, anladığım kadarıyla CEL karşı emirleri tarafından kapatılıyordu. Ve kodun emirlerin kaç pip kapatılacağı bilgisini nereden aldığını anlamıyorum, çünkü SL ve TP boyutunu hiçbir yerde belirtmedim ve emirleri kapatma işlevini hiç belirtmedim. Bu bilginin ekli bir dosyanın bir yerinde, yani bir sınıfta veya yapıda yazıldığından şüpheleniyorum. Eğer öyleyse, açık emrin parametrelerinde değişiklik yapmak için bu yeri nasıl bulabilirim?

Yardımlarınız için tekrar teşekkürler

 
ANDREY #:

Değerli tavsiyeleriniz için çok teşekkür ederim. Sakıncası yoksa, lütfen bana 4'te olan ve sonra 5'te olan bir Uzman Danışman (gösterge değil) veya 4'te Uzman Danışmanın kendisi ve sonra 5'te aynı olan bir bağlantı gönderin
çalışmaya başladım. Yeni başlayanlar için ticaret işlemlerinin STrade ticaret sınıfında açılmasının en kolay olduğunu fark ettim ve hatta bu sınıfın yardımıyla emirleri ve anlaşmaları açmayı başardım
Ancak bir emrin açılmasını şartlandırdığım anda, emirler açılmayı durdurdu, lütfen bana neyi yanlış yaptığımı söyleyin. İşte hiçbir koşul olmadığında emirleri açan kod.

Bu noktayı henüz anlayamadım.... BAY emirleri açıldığında, anladığım kadarıyla CEL karşı emirleri tarafından kapatıldılar. Ve kodun emirlerin kaç pip kapatılacağı bilgisini nereden aldığını anlamıyorum, çünkü SL ve TP boyutunu hiçbir yerde belirtmedim ve emirleri kapatma işlevini hiç belirtmedim. Bu bilginin ekli bir dosyanın bir yerinde, yani bir sınıfta veya yapıda yazıldığından şüpheleniyorum. Eğer öyleyse, açılan emrin parametrelerinde değişiklik yapmak için bu yeri nasıl bulabilirim?

Yardımlarınız için tekrar teşekkürler

Sadece tavsiyede bulunabilirim - ben sovyetler ülkesinde doğdum...

Araştırın - işte bir seçenek.

Ben hala ticaret işlemlerinin tüm nüanslarını öğrenemedim - yıllar önce serbest bir sınıf sipariş ettim ve küçük değişikliklerle kullanıyorum.

 
Aleksey Vyazmikin #:

Sadece tavsiyede bulunabilirim - Sovyetler ülkesinde doğdum....

Arayabilirsiniz, bu da bir seçenek.

Ben hala ticaret işlemlerinin tüm nüanslarını öğrenemedim - yıllar önce serbest bir sınıf sipariş ettim ve küçük değişikliklerle kullanıyorum.

Anladım. Değerli bilgiler için teşekkürler

 
ANDREY #:

Değerli tavsiyeleriniz için çok teşekkür ederim. Sakıncası yoksa, lütfen bana 4'te olan ve sonra 5'te olan bir Uzman Danışman (gösterge değil) veya 4'te EA'nın kendisi ve sonra 5'te aynı olan bir bağlantı gönderin.

İşte en basit olanı. Buna böyle denir. Hem MQL5 koduna hem de MQL4 koduna sahiptir.

Simple advisor
Simple advisor
  • www.mql5.com
Советник на отложенных ордерах
 
Alexey Viktorov #:

İşte en basit olanı. Adı bu. Hem MQL5 hem de MQL4 kodu içerir.

Yardımınız için teşekkürler.

 
ANDREY #:

Ancak bir emrin açılmasını koşullandırdığım anda, emirler açılmayı durdurdu, lütfen bana neyi yanlış yaptığımı söyleyin. İşte hiçbir koşul olmadığında emirleri açan kod.

Bu noktayı henüz anlayamadım.... BAY emirleri açıldığında, anladığım kadarıyla CEL karşı emirleri tarafından kapatıldılar. Ve kodun emirlerin kaç pip kapatılacağı bilgisini nereden aldığını anlamıyorum, çünkü SL ve TP boyutunu hiçbir yerde belirtmedim ve emirleri kapatma işlevini hiç belirtmedim. Bu bilginin ekli bir dosyanın bir yerinde, yani bir sınıfta veya yapıda yazıldığından şüpheleniyorum. Eğer öyleyse, açılan emrin parametrelerinde değişiklik yapmak için bu yeri nasıl bulabilirim?

Yardımlarınız için tekrar teşekkürler

MqlDateTime yapısını bildirdiniz, ancak başlatmadınız, şimdi ya boş ya da çöp.

Bu, saat 10: 00'dan itibaren her tikte bir dakika boyunca alım pozisyonlarını nasıl açacağıdır. Ardından saat 11:00'de bir dakika daha alım pozisyonları açmaya başlayacaktır.

//+------------------------------------------------------------------+
#include<Trade\Trade.mqh>
 CTrade  trade;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime time_now;
   TimeCurrent(time_now);
   if((time_now.hour == 10 || time_now.hour == 11) && time_now.min == 0)
      trade.Buy(0.1);
  }
//+------------------------------------------------------------------+
Bu kod pozisyonları kapatamaz, CTrade sınıfı içinde böyle bir şey yoktur.
 
Aleksandr Slavskii #:

MqlDateTime yapısını bildirdiniz, ancak başlatmadınız, şimdi ya boş ya da çöp.

Bu, saat 10: 00'dan itibaren her tikte bir dakika boyunca alım pozisyonlarını nasıl açacağıdır. Ardından 11:00'de bir dakika boyunca daha fazla alım pozisyonu açmaya başlayacaktır.

Bu kod pozisyonları kapatamaz, CTrade sınıfının içinde böyle bir şey yoktur.

Çok teşekkür ederim.... Beni 5'e hakim olma konusunda çok daha ileriye götürdünüz. Bu kodun pozisyonları kapatamayacağını söylüyorsunuz. Ancak tüm koşulları kaldırırsanız, pozisyonlar anladığım kadarıyla CEL.... karşı emirleri tarafından açılır ve kapatılır. O zaman emirleri kapatmak için hangi kod komutu kullanılıyor? Program, emirleri tam olarak belirli sayıda noktadan sonra veya bazı olayların meydana gelmesinden sonra kapatmak için verileri nereden alıyor? Onları hangi kurala göre kapattığını bile anlamıyorum.

#include<Trade\Trade.mqh>
 CTrade  trade;

void OnTick()
{
trade.Buy(0.1);
}

Ayrıca BAY emirlerini kapatmak için kullanılan SEL emirlerinin nedense kapattıkları BAY emrinin bilet numarasından çok uzakta bir bilet numarasına sahip olduğunu fark ettim. Örneğin, ilk BAY emri 2 numaralı bilete sahip, ancak onu kapatan CEL emri nedense 3 değil (mantıklı olan) 91779 numaralı bilete sahip.

Ve sadece 1 emir açarsanız, her şey mantıklı hale gelir. BAY emri 2 numaraya sahiptir ve kapatan CEL emri 3 numaraya sahiptir.

int y;
#include<Trade\Trade.mqh>
 CTrade  trade;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime time_now;
   TimeCurrent(time_now);
   if(time_now.hour == 10&&y==0)
   {trade.Buy(0.1);y =1;}
      
  }


 
ANDREY #:

Çok teşekkür ederim.... 5'te ustalaşma konusunda bana çok ilerleme sağladınız. Bu kodun pozisyonları kapatamayacağını söylüyorsunuz. Ancak tüm koşulları kaldırırsanız, pozisyonlar anladığım kadarıyla CEL.... karşı emirleri tarafından açılır ve kapatılır. O zaman emirleri kapatmak için hangi kod komutu kullanılıyor? Program, emirleri tam olarak belirli sayıda noktadan sonra veya bazı olayların meydana gelmesinden sonra kapatmak için verileri nereden alıyor? Onları hangi kurala göre kapattığını bile anlamıyorum.

Ayrıca BAY emirlerini kapatmak için kullanılan SEL emirlerinin nedense kapattıkları BAY emrinin bilet numarasından çok uzakta bir bilet numarasına sahip olduğunu fark ettim. Örneğin, ilk BAY emri 2 numaralı bilete sahip, ancak onu kapatan CEL emri nedense 3 değil (mantıklı olan) 91779 numaralı bilete sahip.

Ve sadece 1 emir açarsanız, her şey mantıklı hale gelir. Bai emrinin numarası 2'dir ve CEL emrini kapatmanın numarası 3'tür.


Orada neler olduğunu anlamak zor, ama sanırım bu enstrümanda komisyoncu tarafından izin verilenden daha fazla pozisyon açıyorsunuz ve test cihazı fazladan olanları kapatmaya başlıyor.

Aslında, bu ekstra pozisyonları açmaması gerekir. Ama size neler olduğunu başka bir şekilde açıklayamam.


Ben de bir pozisyonu anlamıyorum. Neden gün sonunda kapanıyor. Belki de brokeriniz pozisyonları bir sonraki güne taşımayı yasaklıyor.

 
Aleksandr Slavskii #:

Orada neler olduğunu anlamak zor, ancak sanırım bu enstrümanda komisyoncu tarafından izin verilenden daha fazla pozisyon açıyorsunuz ve test cihazı fazladan olanları kapatmaya başlıyor.

Aslında bu ekstra pozisyonları açmaması gerekir. Ancak neler olup bittiğini başka türlü açıklayamıyorum.


Ben de bir pozisyonu anlamıyorum. Neden gün sonunda kapanıyor. Belki de brokeriniz pozisyonları ertesi güne taşımanıza izin vermiyordur.

Teşekkür ederim. Açıklama çok mantıklı görünüyor. Tamamen aynı koda ve aynı döneme sahip bir dörtlüde aynı şey oluyor, sadece emirler bir karşı emirle kapatılmıyor. Brokerim Alpari. Açıklamalarınızdan sonra, kapanan karşı emirlerin sayılarının neden kapattıkları emirlerden bu kadar farklı olduğu anlaşıldı. Çünkü tüm kapanış emirleri en sonda tüm kapanış emirlerinden sonra açılıyor.

 

Herkese iyi günler!
CTrade sınıfını kullanarak beşte nasıl sipariş verileceğini öğrenmeye çalışıyorum, çünkü bana göre bu onları ayarlamanın en hızlı ve en kolay yolu. Daha kesin olmak gerekirse, STOPLOSS parametresinin nasıl ayarlanacağını öğrenmeye çalışıyorum. Dörtte son teklif fiyatı önceden tanımlanmış Teklifte saklanıyordu ve anladığım kadarıyla beşte son teklif fiyatı saklanmıyor, ancak yanılmıyorsam seçeneklerden biri olarak CSymbolInfo sınıfının Teklif yönteminde hesaplanıyor. Ancak bu yöntemin fiyatı hesaplayabilmesi için Sembolün daha önce Name yöntemi tarafından seçilmiş olması gerekir.Name yönteminin nasıl çalıştığını anlıyorum, içine sembolün adını veya NULL girmeniz gerekiyor ve false veya true dönecek.

Ancak Name metodunu ve Bid metodunu nasıl ve nerede birleştireceğimi anlayamıyorum, böylece Bid fiyatı c değişkeninde saklanacak

Dört emir Select() fonksiyonu kullanılarak seçildi. Ancak beş emirde emir değil sembol seçilmeli..... Bunu nasıl yapacağımı anlamıyorum

CTrade sınıfının Btsu yönteminin SL parametresinde kullandığım ile değişkenine Teklif fiyatını kaydetmek için koduma bir parça yazabilirseniz çok minnettar olurum.

int y;
double c,d;
#include<Trade\Trade.mqh>        //класс
#include <Trade\SymbolInfo.mqh>  //класс 
CTrade  trad;                   //класс (создание объекта класса)
CSymbolInfo pris;
//+------------------------------------------------------------------+
void OnTick()
  {
   c=pris.Bid();//
   Print(" ---------------------CТОП------------------------------------------------------------  ",c);
   MqlDateTime t;                //структура (объявление структуры)
   TimeCurrent(t);               //структура (инициализация структуры)
   if(t.hour == 9&&y==0)
   {trad.Buy(0.1,NULL,0,c);y =1;}   //класс
      
  }
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
  • www.mql5.com
Name - CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Neden: