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
dasio Mevcut günün tüm saatlerinde zaten döngü yapıyor. iClose() ve iOpen() öğelerini 1 saatten farklı bir zaman çerçevesinden gelen bir çağrı örneği olarak yerleştirdim. Geçerli günden farklı bir güne erişmek istiyorsanız, o zaman datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); Toplanan verileri istediğiniz herhangi bir güne ayırın
Teşekkür ederim.
Belki de çalışmalıyım.
00:00 mum - 01:00 - 02:00 vb. için ayrı hesaplamayı nasıl yapacağımı anlamıyorum.
Afedersiniz
Sinyal Sorunları
Mladen
Teşekkürler, yakından baktım....Hala kodu deniyorum. Bittiğinde size haber vereceğim.
dasio
Bu kısım
i'yi belirtilen gündeki ilk saatlik mumun kaymasına ayarlar (bu nedenle datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); eklendi - günün başlangıç saatini bulmak için) bundan sonra döngüye girecek güne kadar her 1 saatlik çubuk değerleri aynı kalır (örneğin Cuma günü 24 kez değil, komisyoncunuza bağlı olarak 22 veya 23 kez döngüye girer)
Biraz farklı yapılması gereken bir dizi hissetmeniz gerekiyorsa, şimdi bana izin verin, bu senin fikrindi)
Teşekkür ederim.
Belki de çalışmalıyım.
00:00 mum - 01:00 - 02:00 vb. için ayrı hesaplamayı nasıl yapacağımı anlamıyorum.
AfedersinizBir Expert nasıl durdurulur?
Merhaba kodlayıcılar,
Bir Uzmanın kazanan bir ticaretten sonra durması için bazı ekstra kodlama satırları nasıl kodlanır?
Pipler çantada, sonra Expert'i durdurun...
Çok teşekkürler
Tomcat98
dasio
Bu kısım
i'yi belirtilen gündeki ilk saatlik mumun kaymasına ayarlar (bu nedenle datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); eklendi - günün başlangıç saatini bulmak için) bundan sonra döngüye girecek güne kadar her 1 saatlik çubuk değerleri aynı kalır (örneğin Cuma günü 24 kez değil, komisyoncunuza bağlı olarak 22 veya 23 kez döngüye girer)
Biraz farklı yapılması gereken bir dizi hissetmeniz gerekiyorsa, şimdi bana izin verin, bu senin fikrindi)Teşekkür ederim,
biraz daha anlıyorum
Ancak buna ihtiyacım var mesela.
Değişkenlerle şöyle bir ilişkilendirmeliyim:
(mum 00:00 ; Değişken = Kapat+Yüksek
mum 01:00 ; Değişken1 = Kapat+Aç
mum 02:00 ; Değişken2 = yüksek+düşük;
Ve böylece günün tüm saat mumu için.
Böylece değişkenler ne kadar çift olarak tanımlanır.
Ondan sonra değişkenle biraz matematik hesaplaması yapmam ve sonucu bir arabellekle ilişkilendirmem gerekiyor (bu bir sorun değil)
Benim için sorun değişken ilişkilendirmedir ....
Başka bir problem...Programlamaya çalışıyorum ve bazen (sadecesimetimes?eheh) yardıma ihtiyacım var.
İki bekleyen emir veren bir ea'm varsa, bekleyen bir emir açıldığında diğer bekleyen emrin silinmesini istersem nasıl kodlayabilirim?
Teşekkür ederim
2 döngü kullanmanız gerekir:
İlk olarak, bekleyen emirlerden bazılarının "normal" bir emir haline gelip gelmediğini öğrenmek için emirleri saymanız gerekir (böylece OP_BUY veya OP_SELL türlerine sahip düzenli bir emir sayımı yapmanız ve isterseniz geri kalanını saymanız gerekir). siparişler de).
Açılmış emirler varsa, tekrar döngüye girip OP_BUY veya OP_SELL tipi emir olmayan tüm emirleri silmeniz gerekir.
Kod şöyle bir şey olabilir:
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
}Başka bir problem...Programlamaya çalışıyorum ve bazen (sadecesimetimes?eheh) yardıma ihtiyacım var.
İki bekleyen emir veren bir ea'm varsa, bekleyen bir emir açıldığında diğer bekleyen emrin silinmesini istersem nasıl kodlayabilirim?
Teşekkür ederimYalnızca tüm satış veya tüm satın alma pozisyonlarını kapatın (hedef kâra ulaşıldığında)
Herkese Merhaba .. FX ve EA'da yeniyim. Hedefe ulaşıldığında "tüm satışları kapat" veya "tüm alımları kapat" için bir EA bulmaya çalıştım ama bulamadım. "HIT HEDEF veya KÂR" olmadan yalnızca tüm satışları veya tüm alımları kapattım. Birisi aşağıdaki özelliklere sahip 1 EA oluşturmama yardımcı olabilir mi: -
1) Kâr X hedefine ulaşırsa tüm satışları kapatın.
2) Kâr X hedefine ulaşırsa tüm alımları kapatın.
3)Sondaki durdurmayı dahil edin (Mümkünse, sorun değilse sorun değil)
4) Alımların hepsini kapatıyorsa hisse senedi veya marj seviyesi %X'in altındaysa kapatmayın veya tüm satışları kapatın (mümkünse, mümkün değilse sorun değil)
Not:
4'ü kodlamak oldukça zorsa, tek bir EA'da sadece 1,2 ve 3'ü kodlayın.
4 ve 3 zor ise, tek EA'da sadece 1 ve 2 olmaz
Hala zorsa, sadece 1 ve 2'yi ayrı ayrı oluşturun.
Birisi bana yukarıdakileri sağlayabilirse gerçekten minnettar olurum.
Şimdiden teşekkürler
Herkese Merhaba .. FX ve EA'da yeniyim. Hedefe ulaşıldığında "tüm satışları kapat" veya "tüm alımları kapat" için bir EA bulmaya çalıştım ama bulamadım. "HIT HEDEF veya KÂR" olmadan yalnızca tüm satışları veya tüm alımları kapattım. Birisi aşağıdaki özelliklere sahip 1 EA oluşturmama yardımcı olabilir mi: -
1) Kâr X hedefine ulaşırsa tüm satışları kapatın.
2) Kâr X hedefine ulaşırsa tüm alımları kapatın.
3)Sondaki durdurmayı dahil edin (Mümkünse, sorun değilse sorun değil)
4) Alımların hepsini kapatıyorsa hisse senedi veya marj seviyesi %X'in altındaysa kapatmayın veya tüm satışları kapatın (mümkünse, mümkün değilse sorun değil)
Not:
4'ü kodlamak oldukça zorsa, tek bir EA'da sadece 1,2 ve 3'ü kodlayın.
4 ve 3 zor ise, tek EA'da sadece 1 ve 2 olmaz
Hala zorsa, sadece 1 ve 2'yi ayrı ayrı oluşturun.
Birisi bana yukarıdakileri sağlayabilirse gerçekten minnettar olurum.
Şimdiden teşekkürlerMerhaba Pipsmonitor,
Belki burada bu sayfada bir şeyler buldum https://www.mql5.com/en/forum/181179 ayrıca forum başlık çubuğunda bir gözlük araması yaptı, karla kapatıldı kullanılan bazılarını orada buldunuz, kullanabilirsiniz, ayrıca deneyebilirsiniz takip eden Eas'ı arayın, bir Ema'nın sonunu öğrenin ve BBve Ea'yı takip etmeyi bırakın.
Merhaba,
Bu iki kodu birleştirmeye çalışıyorum ama bununla ilgili bir sorunum var.
Bekleyen bir emir dolduğunda diğerinin iptal edilmesi gerektiğine ihtiyacım var.
ilgisizliğiniz için teşekkür ederim
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
} [/PHP]
[PHP] extern int Magic = 68415;
extern int Orario_Inizio = 0;
extern int Orario_Fine = 6;
extern int Buffer = 0;
extern double Lotti = 0.1;
extern int TakeProfit = 10;
extern int StopLoss = 50;
double Massimo;
double Minimo;
int BarCount;
int BarStart;
int BarShift;
double MinLot;
double LotSize;
int i;
int ticket;
string Status;
string BuyStatus1;
string SellStatus1;
double Range;
string CommentoRange;
double pipMultiplier = 1;
int init()
{
}
int start()
{
if (Digits==3 || Digits==5)
{pipMultiplier = 10;}
else {pipMultiplier = 1; }
double TakeProfit1 = TakeProfit*Point*pipMultiplier;
double StopLoss1 = StopLoss*Point*pipMultiplier;
double Buffer1 = Buffer*Point*pipMultiplier;
double StopLossPrice = NormalizeDouble(StopLoss1,Digits);
double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);
double BufferPrice = NormalizeDouble(Buffer1,Digits);
//CALCOLA LE BARRE DEL RANGE
if(Orario_Inizio>Orario_Fine)
{
BarCount=24+Orario_Fine-Orario_Inizio;
}
if(Orario_Inizio<Orario_Fine)
{
BarCount=Orario_Fine-Orario_Inizio;
}
//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE
if(Hour()>=Orario_Fine)
{
BarStart=Hour()-Orario_Fine;
BarShift=BarStart+BarCount;
Minimo=iLow(NULL,PERIOD_H1,BarStart);
Massimo=0;
for(i=BarStart;i<=BarShift;i++)
{
Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));
Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));
Range=(Massimo-Minimo)/Point;
}
}
else
{
Massimo=0;
Minimo=0;
return(0);
}
//CONTROLLA SE E' L'ORARIO PER POTER TRADARE
if(Hour()==Orario_Fine && OrdersTotal()<2)
{
//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY
double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);
//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL
double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);
if (ticket != -1)
return(0);
}
}