Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Örneğin, MACD'den gelen sinyalleri düşünün. Toplamda 5 adet al sinyali ve 5 adet sat sinyali tanımlanmıştır (ters dönüş, sinyal hattı ile geçiş vb.). Zamanın her anında bu sinyallerin değerini bir şekilde elde etmek mümkün müdür? Onlar. her çubuk için, her elemanın bir sinyale, 1 - varlığına ve 0 - yokluğuna karşılık geldiği 10 elemanlı bir vektör oluşturun. Karşılık gelen değerleri almak için CsignalMACD sınıfının hangi yöntemi kullanılabilir?
Ne yazık ki, standart pakette böyle bir işlevsellik yoktur.
Merhaba, anlamama yardım et. Bir robot yarattım (ilk robotum). Başlatıldıktan hemen sonra, Uzman robotu başlatma (EURUSD,H1) başarısız mesajıyla kapanır. Daha fazla bilgi bulamıyorum.
İşte onun kodu:
--------------------------------------
//+------------------------------------------- --------------------+
//| robot.mq5 |
//| Telif hakkı 2012, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı 2012, MetaQuotes Software Corp."
#özellik bağlantısı "http://www.mql5.com"
#özellik sürümü "1.00"
//+------------------------------------------- --------------------+
//| dahil |
//+------------------------------------------- --------------------+
#include <Uzman\Uzman.mqh>
//--- mevcut sinyaller
#include <Uzman\robot\robot.mqh>
//--- kullanılabilir takip
#include <Uzman\Trailing\TrailingNone.mqh>
//--- mevcut para yönetimi
#include <Uzman\Para\MoneyFixedLot.mqh>
//+------------------------------------------- --------------------+
//| girişler |
//+------------------------------------------- --------------------+
//--- uzman için girdiler
girdi dizisi Expert_Title ="robot"; // Belge adı
ulong Expert_MagicNumber =24553; //
bool Expert_EveryTick =yanlış; //
//--- ana sinyal için girişler
giriş int Signal_ThresholdOpen =10; // [0...100] açmak için sinyal eşik değeri
giriş int Signal_ThresholdClose =10; // Sinyal eşik değeri kapat [0...100]
giriş çift Signal_PriceLevel =0.0; // Bir anlaşmayı yürütmek için fiyat seviyesi
giriş çift Signal_StopLevel =50.0; // Zararı Durdur seviyesi (puan olarak)
giriş çift Signal_TakeLevel =50.0; // Kar seviyesini al (puan olarak)
giriş int Signal_Expiration =4; // Bekleyen siparişlerin süresinin dolması (çubuk cinsinden)
girdi int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,...) Hızlı MA dönemi
ENUM_MA_METHOD girin Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Hızlı MA yöntemi
girdi int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,...) Yavaş MA dönemi
ENUM_MA_METHOD girin Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Yavaş MA yöntemi
giriş çift Signal_MaCross_Weight =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Ağırlık [0...1.0]
//--- para için girişler
giriş çift Money_FixLot_Percent =10.0; // Yüzde
çift Money_FixLot_Lots girin = 0.1; // sabit hacim
//+------------------------------------------- --------------------+
//| küresel uzman nesnesi |
//+------------------------------------------- --------------------+
CExpert ExtExpert;
//+------------------------------------------- --------------------+
//| Uzmanın başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
//--- Başlatma uzmanı
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- arızalı
printf(__FUNCTION__+": uzman başlatılırken hata oluştu");
ExtExpert.Deinit();
dönüş(-1);
}
//--- Sinyal oluşturma
CExpertSignal *sinyal=yeni CExpertSignal;
if(sinyal==NULL)
{
//--- arızalı
printf(__FUNCTION__+": sinyal oluşturma hatası");
ExtExpert.Deinit();
dönüş(-2);
}
//---
ExtExpert.InitSignal(sinyal);
sinyal.ThresholdOpen(Signal_ThresholdOpen);
sinyal.ThresholdClose(Signal_ThresholdClose);
sinyal.FiyatSeviyesi(Sinyal_FiyatSeviyesi);
sinyal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
sinyal.Expiration(Signal_Expiration);
//--- MA_Cross filtresi oluşturma
MA_Cross *filtre0=yeni MA_Cross;
if(filtre0==NULL)
{
//--- arızalı
printf(__FUNCTION__+": filter0 oluşturulurken hata oluştu");
ExtExpert.Deinit();
dönüş(-3);
}
sinyal.AddFilter(filtre0);
//--- Filtre parametrelerini ayarla
filter0.FastPeriod(Signal_MaCross_FastPeriod);
filter0.FastMethod(Signal_MaCross_FastMethod);
filter0.SlowPeriod(Signal_MaCross_SlowPeriod);
filter0.SlowMethod(Signal_MaCross_SlowMethod);
filter0.Weight(Signal_MaCross_Weight);
//--- İzleyen nesnenin oluşturulması
CTrailingNone *trailing=yeni CTrailingNone;
if(sondaki ==NULL)
{
//--- arızalı
printf(__FUNCTION__+": takip oluşturma hatası");
ExtExpert.Deinit();
dönüş(-4);
}
//--- Uzmana takip ekle (otomatik olarak silinecektir))
if(!ExtExpert.InitTrailing(sondaki))
{
//--- arızalı
printf(__FUNCTION__+": takip başlatılırken hata oluştu");
ExtExpert.Deinit();
dönüş(-5);
}
//--- Sondaki parametreleri ayarla
//--- Para nesnesinin oluşturulması
CMoneyFixedLot *money=new CMoneyFixedLot;
if(para==NULL)
{
//--- arızalı
printf(__FUNCTION__+": para oluşturma hatası");
ExtExpert.Deinit();
dönüş(-6);
}
//--- Uzmana para ekle (otomatik olarak silinecek))
if(!ExtExpert.InitMoney(para))
{
//--- arızalı
printf(__FUNCTION__+": para başlatılırken hata oluştu");
ExtExpert.Deinit();
dönüş(-7);
}
//--- Para parametrelerini ayarla
para.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Tüm ticaret nesneleri parametrelerini kontrol edin
if(!ExtExpert.ValidationSettings())
{
//--- arızalı
ExtExpert.Deinit();
dönüş(-8);
}
//--- Gerekli tüm göstergelerin ayarlanması
if(!ExtExpert.InitIndicators())
{
//--- arızalı
printf(__FUNCTION__+": göstergeleri başlatma hatası");
ExtExpert.Deinit();
dönüş(-9);
}
//--- tamam
dönüş(0);
}
//+------------------------------------------- --------------------+
//| Uzmanın başlatmadan arındırma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnDeinit(const int nedeni)
{
ExtExpert.Deinit();
}
//+------------------------------------------- --------------------+
//| "Tick" olay işleyici işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------- --------------------+
//| "Ticaret" olay işleyici işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------- --------------------+
//| "Zamanlayıcı" olay işleyici işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------- --------------------+
Sorun ne olabilir. İlk nereye bakacağımı bile bilmiyorum.
Şimdiden teşekkürler.
Merhaba, anlamama yardım et. Bir robot yarattım (ilk robotum). Başlatıldıktan hemen sonra, Uzman robotu başlatma (EURUSD,H1) başarısız mesajıyla kapanır. Daha fazla bilgi bulamıyorum.
Yeterli bilgi yok.
İhtiyaç
#include <Expert\robot\robot.mqh>
Başlatma parametrelerine (test cihazı/terminal, sunucu, çift, zaman çerçevesi vb.)
PS Kaynağı bir dosya olarak eklemek daha iyidir
MQL5 Sihirbazı hakkında sorular:
1) //--- para için girişler
giriş çift Money_FixLot_Percent =10.0; // Yüzde
çift Money_FixLot_Lots girin = 0.1; // sabit hacim
Bu seçenekler ne anlama geliyor? Ve bunlar nasıl ilişkilidir?
2) Bekleyen siparişleri verecek bir Uzman Danışman oluşturmak mümkün müdür? Mümkünse, nasıl?
3) Signal_Expiration değişkeni ne anlama geliyor? Bu nasıl kullanılır?
MQL5 Sihirbazı hakkında sorular:
1) //--- para için girişler
double Money_FixLot_Percent =10.0 girin; // Yüzde
çift Money_FixLot_Lots girin = 0.1; // sabit hacim
Bu seçenekler ne anlama geliyor? Ve bunlar nasıl ilişkilidir?
2) Bekleyen siparişleri verecek bir Uzman Danışman oluşturmak mümkün müdür? Mümkünse, nasıl?
3) Signal_Expiration değişkeni ne anlama geliyor? Bu nasıl kullanılır?
1) Money_FixLot_Percent parametresi, "zorunlu durdurma" seviyesini ayarlamak için kullanılır. Ona dokunma.
Money_FixLot_Lots parametresi, Uzman Danışmanınızın piyasaya gireceği sabit bir hacim (lot) belirler.
Bu parametreler hiçbir şekilde ilişkili değildir.
2) Kaptan tarafından oluşturulan herhangi bir Uzman Danışman bekleyen emirlerin ticaretini yapabilir. ..._PriceLevel parametresi bu amaç için tasarlanmıştır. Bu parametrenin değerine bağlı olarak, EA'nın davranışı aşağıdaki gibi olacaktır:
0 - piyasaya giriş cari fiyattan gerçekleştirilecektir;
>0 - bekleyen limit emirleri ile piyasaya girilecektir (parametre değeri ile mevcut fiyattan daha iyi);
<0 - piyasaya bekleyen stop emirleri ile girilecektir (parametre değeri ile mevcut fiyattan daha kötü);
3) Signal_Expiration parametresi, bekleyen bir emrin ömrünü ayarlar (geçerli zaman çerçevesinin çubukları olarak).
MQL5 Sihirbazında bir EA oluşturulursa, bu tür kaç EA aynı anda sipariş açabilir? Nasıl düzenlenir?
MQL5 Sihirbazında bir EA oluşturulursa, bu tür kaç EA aynı anda sipariş açabilir? Nasıl düzenlenir?
1 sipariş. Düzenlenmemiş.
Sihirbaz, stratejileri test etmek için yapılmıştır. Daha fazlasını istiyorsanız, "bir dosya ile işleme" (ellerinizle yazmanız) gerekir.
2) Kaptan tarafından oluşturulan herhangi bir Uzman Danışman bekleyen emirlerin ticaretini yapabilir. ..._PriceLevel parametresi bu amaç için tasarlanmıştır. Bu parametrenin değerine bağlı olarak, EA'nın davranışı aşağıdaki gibi olacaktır:
0 - piyasaya giriş cari fiyattan gerçekleştirilecektir;
>0 - bekleyen limit emirleri ile piyasaya girilecektir (parametre değeri ile mevcut fiyattan daha iyi);
<0 - piyasaya bekleyen stop emirleri ile girilecektir (parametre değeri ile mevcut fiyattan daha kötü);
PriceLevel parametresi hangi birimlerde ölçülür? Puan olarak mı? Onlar. mevcut fiyatın 20 pip üzerinde bekleyen bir stop emri vermek istersem,
bu parametre PriceLevel =-0.0020 olarak ayarlanmalı mı?