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
EA'mı tekrar Help ThanX ile tamamladım
Merhaba mladen,
büyük yardımın için tekrar ThanX
EA'mı tekrar Help ThanX ile tamamladım
daha fazlaXXXXXXXXX
Yeniden Boyama Göstergeleri
Bu soruyu birkaç hafta önce 'Kodlama Yardımı' konusuna gönderdim, ancak yanıt alamadım.
Çoğu MTF göstergesi yeniden boyanır, bazıları diğerlerinden daha fazla. Biraz yeniden boyayan, ancak çok iyi olan ve bir yönteme dahil edilebilecek bir faktörü olan bir tane var. Sorun şu ki, mantıklı olması için sürekli olarak manuel olarak güncelleme/yenileme yapmam gerekiyor. Her tikte veya her 'x' saniyede/tikte bir otomatik yenilemeyi kodlamanın bir yolu var mı?
Şu anda, yenilemek için, ya çizelge zamanlarını değiştirip geri dönüyorum ya da Grafikler/Yenile sekmesine gidiyorum ya da grafiğe başka bir gösterge ekleyip bir öncekini siliyorum.......tekrar tekrar! Çok zaman alıcı!
Bu otomatik yenilemeyi yapmanın bir yolu varsa, bulduklarımı paylaşacağım......
Teşekkür,
el arısı
...
el arısı
Metatrader, yeni bir onay işareti geldiğinde penceredeki her göstergeye bir otomatik yenileme sinyali gönderiyor, bu nedenle yenileme sorunu değil. Genellikle bu tür bir sorun, bir gösterge değiştirilen çubukların sayısını (genellikle göstergelerde "limit" olarak adlandırılır) doğru bulmazsa olur ... bu nedenle göstergede bir sorundur. Zaman dilimlerini değiştirdiğinizde tüm çubukları yeniden hesaplar ve bu nedenle bu durumda doğru şekilde gösterir ve sadece 1 çubuk değeri değiştiğinde düzgün yapmaz.
Sonuç olarak: göstergenin kodunu kontrol edin - içinde bir hata var
Bu soruyu birkaç hafta önce 'Kodlama Yardımı' konusuna gönderdim, ancak yanıt alamadım.
Çoğu MTF göstergesi yeniden boyanır, bazıları diğerlerinden daha fazla. Biraz yeniden boyayan, ancak çok iyi olan ve bir yönteme dahil edilebilecek bir faktörü olan bir tane var. Sorun şu ki, mantıklı olması için sürekli olarak manuel olarak güncelleme/yenileme yapmam gerekiyor. Her tikte veya her 'x' saniyede/tikte bir otomatik yenilemeyi kodlamanın bir yolu var mı?
Şu anda, yenilemek için, ya çizelge zamanlarını değiştirip geri dönüyorum ya da Grafikler/Yenile sekmesine gidiyorum ya da grafiğe başka bir gösterge ekleyip bir öncekini siliyorum.......tekrar tekrar! Çok zaman alıcı!
Bu otomatik yenilemeyi yapmanın bir yolu varsa, bulduklarımı paylaşacağım......
Teşekkür,
el arısıgösterge yardımı
En son mumun üzerine dikey bir çizgi koyan, ayarlanabilen bir gösterge kullanabilirim, eğer biri varsa ve paylaşabilirse veya bir tane yapılabilirse, çok makbule geçer.
Yanlış kod var mı?
Çubuğun açılıp kapanmasına dayanan bir EA yazmaya çalışıyorum
ancak bir ticaret açma koşuluyla ilgili bir sorunum var.
benim yöntemim şöyle bir şey:
+ Mevcut çubuğun açıklığı önceki çubuğun kapanışından daha yüksek olduğunda SAT. TP, önceki çubuğun yakınında
+ Mevcut çubuğun açıklığı Önceki çubuğun açıklığından daha düşük olduğunda SATIN AL. TP önceki çubuğun açık
+ Geçerli çubuk kapandığında KAPATIN.
ve işte kod (hala mql4 öğrenmeye çalışıyorum, bu yüzden bunun en iyi kod olmadığını biliyorum)
#property link "sando"
#define MAGICMA 20050610
//===================parametre====================//
dış çift solantang =3;
dış çift solangiam =3;
harici çift LotSize =1;
//============================================//
//+------------------------------------------- -------------------+
//| açık ticaret için kontrol |
//+------------------------------------------- -------------------+
int CalculateCurrentOrders(dize sembolü)
{
int satın alır = 0, satar = 0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) satın alır++;
if(OrderType()==OP_SEL) satıyor++;
}
}
//---- iade sipariş hacmi
if(satın alır>0) iade(satın alır);
başka iade(-satış);
}
//+------------------------------------------- -------------------+
//| Para Yönetimi (Tip 3) |
//+------------------------------------------- -------------------+
çifte para yönetimi3()
{
çift LotSize = 0.1;
if(OrdersHistoryTotal()>0)
{
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(SiparişKar() > 0)
{
if(OrderLots() > LotsSize)
{
LotsSize = OrderLots()/solangiam;
}
başka
{
LotSize = LotSize;
}
}
başka
{
LotsSize = OrderLots() * solantang;
}
}
dönüş (NormalizeDouble(LotsSize,2));
}
//+------------------------------------------- -------------------+
//| DURUM bir ticaret açmak için |
//+------------------------------------------- -------------------+
geçersiz açık ticaret()
{
int res;
if(Kapat[0]<Aç[1])
{
res=OrderSend(Symbol(),OP_SELL,moneymanagement3(),Bid,3,Close[0],Close[1],"",MAGICMA,0,Red);
dönüş;
}
if(Open[0]>Aç[1])
{
res=OrderSend(Symbol(),OP_BUY,moneymanagement3(),Ask,3,Aç[0],Kapat[1],"",MAGICMA,0,Mavi);
dönüş;
}
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) opentrade();
// başka donggiaodich();
//----
}
//+------------------------------------------- -------------------+
ve lütfen ekteki resmi kontrol edin
Sanırım kodda bir yanlışlık var
Bazen EA, T_T koşulunu karşılarken ticareti yapmaz Nedenini bilmiyorum
ve bazen EA, koşulu karşılamadığında ticareti yapar!
Lütfen koddaki yanlışı düzeltmeme yardım edin.
Çubuğun açılıp kapanmasına dayanan bir EA yazmaya çalışıyorum
ancak bir ticaret açma koşuluyla ilgili bir sorunum var.
benim yöntemim şöyle bir şey:
+ Mevcut çubuğun açıklığı bir önceki çubuğun kapanışından daha yüksek olduğunda SAT. TP, önceki çubuğun yakınında
+ Mevcut çubuğun açıklığı Önceki çubuğun açıklığından daha düşük olduğunda SATIN AL. TP önceki çubuğun açık
+ Geçerli çubuk kapandığında KAPATIN.
ve işte kod (hala mql4 öğrenmeye çalışıyorum, bu yüzden bunun en iyi kod olmadığını biliyorum)
ve lütfen ekteki resmi kontrol edin
Sanırım kodda bir yanlışlık var
Bazen EA, T_T koşulunu karşılarken ticareti yapmaz Nedenini bilmiyorum
ve bazen EA, koşulu karşılamadığında ticareti yapar!
Lütfen koddaki yanlışı düzeltmeme yardım edin.[lang=pl]+ Mevcut çubuğun açıklığı önceki çubuğun kapanışından daha yüksek olduğunda SAT. TP, önceki çubuğun yakınında
+ Mevcut çubuğun açıklığı Önceki çubuğun açıklığından daha düşük olduğunda SATIN AL. TP önceki çubuğun açık
İşte ilk hata:
if(Kapat[0]Kapat[1])
if(Open[0]>Open[1]) (Open[0]<Open[1] olmalıdır)
İkincisi StopLoss. Kodunuzda StopLose'u ayarladınız, ancak yukarıdaki açıklamada
Yeni bir bar ortaya çıkarsa işlemleri kapatmak istediğinizi söylediniz.
İşte bir sorun daha. Aç[0]<Aç[1] olduğunu varsayalım. Fark çok küçük olabilir
emriniz gerçekleştiğinde fiyat Open[1] üzerinde olacak ve TP
sipariş açılış fiyatından daha az. Aşağıda bu davayı yakalamaya izin veren koşulu ekliyorum.
Tüm siparişleri kapatmak istediğinizi iyi anlarsam, çubuğun sonundaki kod burada.
#özellik bağlantısı "sando"
#define MAGICMA 20050610
//===================parametre====================//
dış çift solantang =3;
dış çift solangiam =3;
harici çift LotSize =1;
//============================================//
//+------------------------------------------- -------------------+
//| açık ticaret için kontrol |
//+------------------------------------------- -------------------+
int CalculateCurrentOrders(dize sembolü)
{
int satın alır = 0, satar = 0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış ) ara;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) satın alır++;
if(OrderType()==OP_SEL) satıyor++;
}
}
//---- iade sipariş hacmi
if(satın alır>0) iade(satın alır);
başka iade(-satış);
}
//+------------------------------------------- -------------------+
//| Para Yönetimi (Tip 3) |
//+------------------------------------------- -------------------+
çifte para yönetimi3()
{
çift LotSize = 0.1;
if(OrdersHistoryTotal()>0)
{
OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
if(SiparişKar() > 0)
{
if(OrderLots() > LotsSize)
{
LotsSize = OrderLots()/solangiam;
}
başka
{
LotSize = LotSize;
}
}
başka
{
LotsSize = OrderLots() * solantang;
}
}
dönüş (NormalizeDouble(LotsSize,2));
}
//+------------------------------------------- -------------------+
//| DURUM bir ticaret açmak için |
//+------------------------------------------- -------------------+
geçersiz açık ticaret()
{
int res;
if(Kapat[1] Kapat[1] )
{
res=OrderSend(Symbol(),OP_SELL,moneymanagement3(), Bid,3,0,Close[1],"",MAGICMA,0,Red);
dönüş;
}
if(Open[0]<Aç[1] && Sor <Aç[1])
{
res=OrderSend(Symbol(),OP_BUY,moneymanagement3(),Ask,3,0,Aç[1],"",MAGICMA,0,Mavi);
dönüş;
}
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
geçersiz başlangıç()
{
if(isNewBar())
{
closeOrders(MAGICMA,OP_BUY);
closeOrders(MAGICMA,OP_SELL);
}
Yazdır(Kapat[1]-Aç[0]);
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) opentrade();
// başka donggiaodich();
//----
}
void closeOrders(int oMagic,int oType) {
for(int i=0;i<OrdersTotal();i++) {
if(OrderSelect(i,SELECT_BY_POS)) {
if(OrderMagicNumber()==oMagic || oMagic<0) {
if(OrderSymbol()==Symbol()) {
if(OrderType()==oType || oType<0) {
if(OrderType()==OP_BUY) {
OrderClose(OrderTicket(),OrderLots(),Bid,0);
ben--;
}
if (OrderType() == OP_BUYSTOP)
{
OrderDelete(OrderTicket());
ben--;
}
if(OrderType()==OP_SEL) {
OrderClose(OrderTicket(),OrderLots(),Ask,0);
ben--;
}
if (OrderType() == OP_SELLSTOP)
{
OrderDelete(OrderTicket());
ben--;
}
}
}
}
}
}
}
bool isNewBar() {
statik int prevTime;
bool yeniBar=yanlış;
if(Zaman[0]!=öncekiZaman) {
yeniBar=true;
prevTime=Zaman[0];
}
dönüş(newBar);
}
//+------------------------------------------- -------------------+
Şerefe,
Grzesiek[/lang]
Kodlama Yardımı: Bir ECN Aracısı kullanarak EA ile Zarar Durdur ve Kâr Al yerleştirme
ECN Broker ile Zararı Durdurun, Kar Alın
Arkadaşlar,
MQL4 programlamasında acemiyim ve bir ECN komisyoncusu ile bir SİPARİŞE SL & TP eklemek için yardıma ihtiyacım var.
Başlangıçta, birisi SİPARİŞLEREND içindeki StopLoss & TakeProfit alanını "0" olarak ayarlaması gerektiğini, aksi takdirde bir ECN/STP komisyoncusunun yapmayacağını belirtene kadar SL ve TP'lerin neden siparişimi bir hatayla sonuçlandırdığını anlayamadım. emri yerine getirin.
Öyleyse sorum şu: Market'te bir emri nasıl uygulayabilirim ve ardından hemen (veya bir veya iki saniye içinde) o bilete bir SL/TP ekleyebilirim?
İşte sorumla ilgili kodun bir parçası:
if(CurrentPriceBuy>ÜstFiyatTetikleyici)
{
OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,Com mm,0,0,CLR_NONE);
}
Herhangi biri, bu belirli bilete isteğe bağlı olarak 25 piplik bir TP/SL ekleyebilmem için OrderSend komutundan hemen sonra kod eklememe yardımcı olabilir mi?
Herhangi bir yardım çok takdir edilecektir. Şimdiden teşekkürler.
Saygılarımızla,
kasio
ECN Broker ile Zararı Durdurun, Kar Alın
Arkadaşlar,
MQL4 programlamasında acemiyim ve bir ECN komisyoncusu ile bir SİPARİŞE SL & TP eklemek için yardıma ihtiyacım var.
Başlangıçta, birisi SİPARİŞLEREND içindeki StopLoss & TakeProfit alanını "0" olarak ayarlaması gerektiğini, aksi takdirde bir ECN/STP komisyoncusunun yapmayacağını belirtene kadar SL ve TP'lerin neden siparişimi bir hatayla sonuçlandırdığını anlayamadım. emri yerine getirin.
Öyleyse sorum şu: Market'te bir emri nasıl uygulayabilirim ve ardından hemen (veya bir veya iki saniye içinde) o bilete bir SL/TP ekleyebilirim?
İşte sorumla ilgili kodun bir parçası:
if(CurrentPriceBuy>ÜstFiyatTetikleyici)
{
OrderSend(Sym,OP_BUY,Lots,CurrentPriceBuy,0,0,0,Com mm,0,0,CLR_NONE);
}
Herhangi biri, bu belirli bilete isteğe bağlı olarak 25 piplik bir TP/SL ekleyebilmem için OrderSend komutundan hemen sonra kod eklememe yardımcı olabilir mi?
Herhangi bir yardım çok takdir edilecektir. Şimdiden teşekkürler.
Saygılarımızla,
kasiomerhaba kasio,
ECN brokerinde işlem yapıyorsanız, SL/TP olmadan emir göndermeli ve değiştirmelisiniz.
işte bir örnek:
harici çift StopLoss = 25;
harici çift TakeProfit = 25;
if(isECN==true )
{
bilet=OrderSend(Symbol(),OP_BUY,lot,Sor, kayma,0,0,yorum,sihir);
OrderSelect(bilet,SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(),sltpValue(Bid - StopLoss*Point, StopLoss),sltpValue(Sor+Kar Al*Puan,Kar Al),0);
}
double sltpValue(double w1, int w2)
{
if(w2 == 0)
dönüş (0);
dönüş (NormalizeDouble(w1, Digits));
}
umarım açıktır
Daha fazla sorunuz varsa bana PM atın.
şerefe,
grzesiek
Bilgiler her tikte güncellenmez
Merhaba millet,
Ekranımdaki çeşitli göstergeler hakkında bana bilgi gösteren bu ea'yı yazdım.
Ancak ea'yı grafiğime eklediğimde, bilgiler sadece her 5 dakikada bir güncelleniyor (5 dakikalık grafikte),
her tik yerine. Kodlamamda yanlış bir şey mi var? Her tiki değiştirecek bilgileri görmek isterim.
//+------------------------------------------- -------------------+
//| test.mq4 |
//| Telif hakkı © 2011, Test A.Ş. |
//| test.net - Kaynakları ve Bilgileri Test Edin. |
//+------------------------------------------- -------------------+
#property telif hakkı "Telif hakkı © 2011, Test Inc."
#özellik bağlantısı "http://www.test.net"
//+------------------------------------------- -------------------+
//| etiketler |
//+------------------------------------------- -------------------+
#define ccilabel "CCIValue"
#define rsilabel "RSIValue"
#define stochlabel "StochValue"
#define üst bant etiketi "UpperBandValue"
#define alt bant etiketi "LowerBandValue"
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
//----
//============================================== ===================
// Dinamik Göreceli Güç İndeksi
//============================================== ===================
çift RSI;
çift UpperBand;
çift AltBant;
RSI=iCustom(NULL,0,"Dinamik Bölge RSI",14,0,1);
UpperBand=iCustom(NULL,0,"Dinamik Bölge RSI",14,1,1);
LowerBand=iCustom(NULL,0,"Dinamik Bölge RSI",14,2,1);
//============================================== ===================
// CCİ
//============================================== ===================
çift CCI;
CCI=iCCI(NULL,0,14,PRICE_TYPICAL,1);
//============================================== ===================
// Stokastik berekenen
//============================================== ===================
çift Stoch;
Stoch=iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
//============================================== ===================
// Bilgileri göster
//============================================== ===================
// CCIDeğeri
ObjectDelete(ccilabel);
ObjectCreate(ccilabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(ccilabel, OBJPROP_XDISTANCE, 20);
ObjectSet(ccilabel, OBJPROP_YDISTANCE, 20);
ObjectSetText(ccilabel, "CCIValue is " + DoubleToStr(CCI,2), 10, "Arial", DeepSkyBlue);
// Stok Değeri
ObjectDelete(stochlabel);
ObjectCreate(stochlabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(stochlabel, OBJPROP_XDISTANCE, 20);
ObjectSet(stochlabel, OBJPROP_YDISTANCE, 40);
ObjectSetText(stochlabel, "StochValue is " + DoubleToStr(Stoch,2), 10, "Arial", DeepSkyBlue);
// RSIV değeri
ObjectDelete(rsilabel);
ObjectCreate(rsilabel, OBJ_LABEL, 0, 0, 0);
ObjectSet(rsilabel, OBJPROP_XDISTANCE, 20);
ObjectSet(rsilabel, OBJPROP_YDISTANCE, 60);
ObjectSetText(rsilabel, "RSIValue is " + DoubleToStr(RSI,2), 10, "Arial", DeepSkyBlue);
// UpperBandValue
ObjectDelete(üst bant etiketi);
ObjectCreate(üst bant etiketi, OBJ_LABEL, 0, 0, 0);
ObjectSet(üst bant etiketi, OBJPROP_XDISTANCE, 20);
ObjectSet(üst bant etiketi, OBJPROP_YDISTANCE, 80);
ObjectSetText(üst bant etiketi, "UpperbandValue is " + DoubleToStr(UpperBand,2), 10, "Arial", DeepSkyBlue);
// AltBandValue
ObjectDelete(alt bant etiketi);
ObjectCreate(alt bant etiketi, OBJ_LABEL, 0, 0, 0);
ObjectSet(alt bant etiketi, OBJPROP_XDISTANCE, 20);
ObjectSet(alt bant etiketi, OBJPROP_YDISTANCE, 100);
ObjectSetText(alt bant etiketi, "LowerBandValue is " + DoubleToStr(LowerBand,2), 10, "Arial", DeepSkyBlue);
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
KG Destek ve Direnç modu
Merhaba,
Ekli destek ve direnç göstergelerinden birini değiştirecek birine ihtiyacım var. İlki, bir koparma yapıldığında bir uyarı verir. Yeni bir destek veya direnç çubuğu belirir belirmez bir uyarıya ihtiyacım var. Bu gösterge en iyi destek/direnç göstergelerinden biridir ve ayrıca özellikle yüksek zaman dilimlerinde çok güçlüdür.
teşekkürler
kg_support_and_resistance.mq4 veya
kg_support_and_resistance_alert_revision_2.ex4