Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1120
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
Bir danışman var, hangi günlerde ticaret yapıp hangilerini yapmayacağını seçme yeteneğine sahip olmasını istiyorum.
Pzt - yanlış
W - doğru
Yüzbaşı...
Lütfen bana bunun nasıl uygulanacağını söyle?
Bir danışman var, hangi günlerde ticaret yapıp hangilerini yapmayacağını seçme yeteneğine sahip olmasını istiyorum.
Pzt - yanlış
W - doğru
Yüzbaşı...
Lütfen bana bunun nasıl uygulanacağını söyle?
Haftanın günü
Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.
int Haftanın Günü ();
Geri dönüş değeri
Haftanın gününün sıra numarası (Pazar-0,1,2,3,4,5,6) .
Not
Test sırasında, bilinen son sunucu zamanı simüle edilir.
Misal:
// hafta sonları çalışmaz.
if ( DayOfWeek ()==0 || DayOfWeek ()==6) return (0);
Haftanın günü
Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.
Teşekkürler, daha net oldu.
Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.
"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?
Haftanın günü
Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.
Teşekkürler, daha net oldu.
Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.
"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?
İşte sadece Pazartesi günü işlem yapılmasına izin veren basit bir örnek. Bu kod MT4 ve MT5'te çalışır
//| test08.mq4 |
//| Sergey Gritsay |
//| https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link "https://www.mql5.com/ru/users/sergey1294"
#property version "1.00"
#property strict
input ENUM_DAY_OF_WEEK dayofweek= MONDAY ;
MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//---
TimeToStruct ( TimeCurrent (),time);
if (time.day_of_week!=dayofweek) return ; // выйдем из OnTick() если текущий день не равен установленному дню
// тут остальной код советника.
}
//+------------------------------------------------------------------+
...
Haftanın günü
Bilinen son sunucu saatinin haftanın gününün seri numarasını döndürür.
Teşekkürler, daha net oldu.
Artık harici parametrelerde işlem günlerini seçme özelliğini nasıl uygulayacağımı anlayamıyorum. Daha ayrıntılı olarak, aynı Uzman Danışmanın Pazartesi günü bir işlem çiftinde işlem yapmasını ve diğerinde işlem yapmamasını istiyorum.
"extern" ile nasıl yazılır ve ardından koşulda nasıl uygulanır (if...else)?
ENUM_DAY_OF_WEEK numaralandırmasını kullanın
Sayfanın en sonunda.
geçersiz OnTick ()
{
//---
TimeToStruct ( TimeCurrent (), zaman);
if (time.day_of_week!=dayofweek) dönüşü ; // eğer geçerli gün ayarlanan güne eşit değilse OnTick()'ten çık
// EA kodunun geri kalanı burada.
}
//+------------------------------------------- --------------------+
...
Teşekkür ederim!
Doğru, şimdi hala her çiftin farklı sayıda "çalışma" günü olduğu bir an ile çalışmanız gerekiyor.
Belki de 5 değişken girmeniz gerekiyor: haftanın günü1, haftanın günü2,...?
Ama yine 3 işlem günü varsa kalan 2 değişkende ne belirtilmelidir!?
...
Teşekkür ederim!
Doğru, şimdi hala her çiftin farklı sayıda "çalışma" günü olduğu bir an ile çalışmanız gerekiyor.
Muhtemelen 5 değişken girmeniz gerekiyor: dayofweek1, dayofweek2,...?
Ama yine 3 işlem günü varsa kalan 2 değişkende ne belirtilmelidir!?
Şu şekilde deneyebilirsiniz:
#property strict
//-
enum YesNo {
_no = 0 , // NoTrade
_yes = 1 // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no; // Чт
sinput YesNo day5 = _yes; // Пт
MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//--
// здесь какой-то код, например закрытие
...
// проверка запрета на торговлюif (TradeAllow()) return ;
// далее код
}
//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
switch (time.day_of_week) {
case 1 : return (!day1);
case 2 : return (!day2);
case 3 : return (!day3);
case 4 : return (!day4);
case 5 : return (!day5);
default : return ( true );
}
}
Perşembe günleri ticaret yasağı var
Biraz daha güzel yapabilirsiniz, hepsi göreve bağlıdır:
#property strict
//-
enum YesNo {
_no = 0 , // No trade
_yes = 1 // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no; // Чт
sinput YesNo day5 = _yes; // Пт
MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
//--
if (TradeAllow()) {
ClosePos(); // Только закрытие
} else {
ClosePos(); // Закрытие
OpenPos(); // Открытие
Function() // Ещё что-то
}
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия |
//+------------------------------------------------------------------+
void ClosePos()
{
// код
}
//+------------------------------------------------------------------+
//| Функция открытия |
//+------------------------------------------------------------------+
void OpenPos()
{
// код
}
//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
switch (time.day_of_week) {
case 1 : return (!day1);
case 2 : return (!day2);
case 3 : return (!day3);
case 4 : return (!day4);
case 5 : return (!day5);
default : return ( true );
}
}
//+------------------------------------------------------------------+
Herkese selam! MT4'te işlem yaparken clusterdelta.com'daki delta göstergesini kullanıyorum. Gösterge değerlerinde belirli bir eşiğe ulaşıldığında, bir uyarı tetiklenmesini veya başka bir şekilde bir ses sinyali verilmesini sağlayabilecek bir serbest çalışana ihtiyacımız var. Bu soruyla kiminle iletişim kuracağımı söyle?