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
Atr azalan kod ???
Atr azalan - mql4 kodu nedir?
-------------------------------------------------- ------------------------------
atr azalan
mql4 kodu nedir?
Pozisyonlarımın açılmamasını isterim
ATR d1 > ATR d1 (-1)
3 Seviye İzleyen Duraklar nasıl kodlanır
İzleyenDurdur = 50;
TrailingStop_Over100 =30;
TrailingStop_Over150 = 20;
Seviye 1: 0-100 pip kar - TS 50 pip
Seviye 2: 101-150 pip kar - TS 30 pip olarak değişir
Seviye 3: 151+ pip kâr - TS, 20 pip olarak değişir
Bunu ( Pozitif yön hareketi) nasıl kodlarım ki pip karı arttığında TS değişecek mi?
Dave
<<<
Bir kodlayıcının uzmanlığını gerçekten takdir ediyorum.
ilk çaprazdan sonra birkaç bar mesafesi ayarlayın
Tüm programcı gurularına merhaba, ben mql4 programlamada acemiyim ve bir soruna takıldım,
yani aşağıdaki gibidir:
PERIOD_H1'de 2 EMA 5 ve 20 PERIOD_15 ve sırasıyla 5 ve 20 EMA'ya sahibim.
Yani PERIOD_M15 ilk çaprazıyla bir pozisyona girerken, ödül diğer yöne hareket ederse ve ters çapraz yaparsa danışman aynı barda pozisyonu hemen kapatıyor. Bu programatik olarak doğrudur, ancak asıl sorunum sonraki 1-2 veya daha fazla çubuğu beklemek ve ardından çapraz bulunursa konumu kapatmak.
Peki bunu yapmama yardım eder misin? Aynı sorunla ilgili bir konu buradaysa, bana bir bağlantı gönderebilir misin?
ve Moderatörler gönderiyi kaldırabilir.
şimdiden teşekkürler!!
-- zaten açık bir pozisyonunuz varsa
-- çok fazla çaprazlama meydana gelirse
-- bu pozisyondan çıkmadan önce biraz bekleyin
-- bu, bir çubukta tekrarlanan çarpıları çözmelidir
if(firstCross == 1)
{
---------------------------//Kapat, OpenOrderPrise()'den sonraki birkaç çubuğun yazdırılıp yazdırılmadığını kontrol edin--------- --------------------------
if(openbar <= yakın bar)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red); // konumu kapat
dönüş(0); // çıkış
}başka
dönüş(0);
}
peki ürkütücü bir çözüm buldum zaten bağlıyım
Kodda zaman kaydırma veya optimizasyon fikirleri için bazı optimizasyon fikirleriniz varsa, önceden herhangi bir önerinizi takdir edeceğim.
Yardımın lazım
Merhaba tüccarlar,
Birisi bu göstergeye (MT4-LevelStop-Reverse-vB0-3) karşı uyarı geliştirmeme yardımcı olabilirse gerçekten minnettar olacağım.
Uyarının, ok belirdiğinde hemen çalmasını istiyorum.
Şimdiden teşekkürler.
merhaba,
Şanslı v2'nizi kullanıyorum ve nesneyi kullanmayan çizelgeye metin ekleme kodunu bilmek istiyorum--etiket-->resme bakın ~~
ve kullanıcı metni delemez~ ~
metin şöyle oluyor-- "Şansınız özgür ve hala gelişiyor..."
nasıl kodlanır?
TeşekkürlerYorum() komutunu kullanın
Yorum - MQL4 Belgeleri
grafikte bazı uneliminateAble metin nasıl kodlanır
merhaba,
Şanslı v2'nizi kullanıyorum ve nesneyi kullanmayan çizelgeye metin ekleme kodunu bilmek istiyorum--etiket-->resme bakın ~~
ve kullanıcı metni delemez~ ~
metin şöyle oluyor-- "Şanslı v2 EA'nız ücretsiz ve hala geliştiriliyor..."
nasıl kodlanır?
Teşekkürler
Çoklu sipariş ve çoklu takip
Ea'mda, biri piyasada, diğeri alım/satım limitli olmak üzere birden fazla emir kullanıyorum.
Örnekteki gibi 3 girişi aldığımda, takip edenin birlikte başlamasını ve birlikte çalışmasını istiyorum
Bir örnek
1.50'de 1 giriş
1.4950'de 2 giriş
1.4930'da 3 giriş
sondaki 50 puan, ancak daha önce değil, 1.5050'ye ulaştığında başlamasını istiyorum, fiyat 1.5001'e ulaştığında normal takip kullanırsam ikinci giriş (doluysa) izlemeye başlar ama istemiyorum... i sondaki 50 pip ve hepsi aynı fiyatta yani 1.5050'de başlamasını istiyorum
yani hangi siparişi kullandığımı anlamak için bileti saklamak daha mı iyi?
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Point*StopLoss,Ask+TakeProfit*Point,0,0,Green);
LastClosedBar = Time[0];
RefreshRates();
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
entratalong= OrderOpenPrice( );
ticket2=OrderSend(Symbol(),OP_BUYLIMIT,Lots_2ingresso,entratalong-Point*Secentrata-2*Point,3,entratalong-Point*StopLoss-2*Point,entratalong+TakeProfit*Point,NULL,1,0,Magenta); // NULL, c'e il null in + //
ticket3=OrderSend(Symbol(),OP_BUYLIMIT,Lots_3ingresso,entratalong-Point*Terzentrata-2*Point,3,entratalong-Point*StopLoss-2*Point,entratalong+TakeProfit*Point,NULL,2,0,Magenta); // buono dei test //
[/CODE]
Here the trailign stop, it don't work the trail 1 e trail 2 with at the same time i control the ticket!!!
[CODE]
int TrailStop ()
{
int cnt,result,total=OrdersTotal();
double gain2=Lots_2ingresso;
double gain3=Lots_2ingresso;
int ticket,ticket2,ticket3;
for(cnt = total-1; cnt >= 0; cnt--)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if ((OrderSymbol() == Symbol()) && (OrderProfit() > 0.00))
{
if (OrderType()==OP_BUY && OrderTicket()==ticket )
{
if(Bid - OrderOpenPrice() > Point * TrailingStop )
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
for(cnt = total-1; cnt >= 0; cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderType()!=OP_SELL && OrderType()!=OP_BUY) //&& trail==1 && OrdersTotal() > 1 )
result =OrderDelete(OrderTicket());
}
Alert("sta facendo trail");
}
}
}
// trailing 2 parte X pip dopo
if (OrderType()==OP_BUY && OrderTicket()==ticket2)
{
if(Bid - OrderOpenPrice() > Point * Trailing2)
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
}
}
}
// trailing 3 parte X pip dopo
if (OrderType()==OP_BUY )
{
if(Bid - OrderOpenPrice() > Point * Trailing3)
{
if(OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
}
}
}// fine trailing
Lütfen bu kodu EMA değiştirin
Bu harika bir kod: Coders Guru. Lütfen biri benim için değiştirebilir mi? Sadece açık işlemleri KAPATMAK için ihtiyacım var. Bana ne zaman işlem açmam gerektiğini söyleyen ve bütün gün bilgisayar başında oturmak istemeyen bir sistem oluşturdum.
işlemleri kapatmak için. Teşekkürler Takım.
Kodu değiştirin lütfen
Bu harika bir kod: Coders Guru. Lütfen biri benim için değiştirebilir mi? Sadece açık işlemleri KAPATMAK için ihtiyacım var. Ne zaman işlem açmam gerektiğini söyleyen ve işlemleri kapatmak için bütün gün bilgisayar başında oturmak istemeyen bir sistem oluşturdum. Teşekkürler Takım.
//+------------------------------------------- -------------------+
//| EMA_6_12.mq4 |
//| Kodlayıcılar Guru |
//| Forex TSD| Metatrader Göstergeleri ve Uzman Danışmanları |
//+------------------------------------------- -------------------+
#özellik telif hakkı "Coders Guru"
#özellik bağlantısı "https://www.forex-tsd.com"
//---- İçerir
#Dahil etmek
//---- İşlem limitleri
harici çift TrailingStop = 40;
harici çift TakeProfit = 1000; //herhangi bir büyük sayı
dış çift Lot = 1;
extern int Kayma = 5;
//--- Harici seçenekler
harici int CurrentBar = 1;
extern bool UseClose = true;
//--- Gösterge ayarları
harici int MaMode = 1; /* MODE_SMA 0 MODE_EMA 1 MODE_SMMA 2 MODE_LWMA 3 */
harici int KısaEma = 4;
harici int UzunEma = 8;
//--- Genel değişkenler
int SihirliSayı = 123430;
string ExpertComment = "EMA_4_8";
bool LimitPairs = yanlış;
bool LimitFrame = yanlış;
int Zaman Çerçevesi = 60;
string LP[] = {"EURUSD","USDJPY","AUDUSD","GBPUSD","EURGBP","USDCHF"}; // sınırlamak istediğiniz paris'i ekleyin/kaldırın.
bool Optimize = yanlış;
intDeneme Sayısı = 5;
//+------------------------------------------- -------------------
int init()
{
dönüş(0);
}
int tanım()
{
dönüş(0);
}
//+------------------------------------------- -------------------
bool isNewSymbol(string current_symbol)
{
// tüm açılan siparişler arasında dolaş ve sembolleri karşılaştır
int toplam = SiparişlerToplam();
for(int cnt = 0 ; cnt < toplam ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
dönüş (Yanlış);
}
dönüş (Doğru);
}
//+------------------------------------------- -------------------
int Çaprazlanmış()
{
double EmaLongPrevious = iMA(NULL,0,LongEma,0,MaMode, PRICE_CLOSE, CurrentBar+1);
double EmaLongCurrent = iMA(NULL,0,LongEma,0,MaMode, PRICE_CLOSE, CurrentBar);
double EmaShortPrevious = iMA(NULL,0,ShortEma,0,MaMode, PRICE_CLOSE, CurrentBar+1);
double EmaShortCurrent = iMA(NULL,0,ShortEma,0,MaMode, PRICE_CLOSE, CurrentBar);
eğer (EmaShortPreviousEmaLongCurrent ) dönüşü (1); // yukarı trend
if (EmaShortPrevious>EmaLongPrevious && EmaShortCurrent<EmaLongCurrent ) dönüşü (2); // düşüş trendi
dönüş (0); //başka bir yerde
}
//+------------------------------------------- -------------------+
int başlangıç()
{
int cnt, bilet, toplam,n;
çift eğilim ;
if(Bars<100) {Print("100'den küçük barlar"); dönüş (0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Bu EA bu TimeFrame ile çalışmıyor!"); dönüş (0);}
}
if(SınırÇiftleri)
{
if(AllowedPair(Symbol()) == false) {Print("Bu EA bu Para Birimi ile çalışmıyor!"); dönüş (0);}
}
//--- Ticaret koşulları
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
if (Çapraz() == 1 )
BuyCondition = yanlış;
if (Çaprazlı ()== 2 )
SellCondition = yanlış;
if (Çapraz ()== 1)
CloseBuyCondition = doğru;
if (Çapraz ()== 1)
CloseSellCondition = doğru;
toplam = SiparişlerToplam();
if(toplam < 1 || isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- SATIN AL koşulu
{
bilet = OpenOrder(OP_BUY); //<-- SATIN AL emrini aç
CheckError(bilet,"SATIN AL");
dönüş(0);
}
if(SellCondition) //<-- SATIŞ koşulu
{
bilet = OpenOrder(OP_SELL); //<-- SATIŞ emrini aç
CheckError(bilet,"SAT");
dönüş(0);
}
dönüş(0);
}
for(cnt=0;cnt<toplam;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Uzun pozisyon açıldı
{
if(Kullan Kapat)
{
if(CloseBuyCondition) //<-- Siparişi kapatın ve çıkın!
{
CloseOrder(OrderType()); dönüş(0);
}
}
TrailOrder(OrderType()); dönüş(0); //<-- Siparişi takip etme
}
if(OrderType()==OP_SELL) //<-- Kısa pozisyona git
{
if(Kullan Kapat)
{
if(CloseSellCondition) //<-- Siparişi kapatın ve çıkın!
{
CloseOrder(OP_SELL); dönüş(0);
}
}
TrailOrder(OrderType()); dönüş(0); //<-- Siparişi takip etme
}
}
}
dönüş(0);
}
//+------------------------------------------- -------------------+
int OpenOrder(int türü)
{
int bilet=0;
int hata=0;
int c = 0;
if(type==OP_BUY)
{
for(c = 0 ; c < NumberOfTries ; c++)
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,Ask+TakeProfit*Puan,ExpertComment,MagicNumber,0,Green);
err=GetLastError();
if(hata==0)
{
kırmak;
}
başka
{
if(err==4 || err==137 ||err==146 || err==136) //Meşgul hataları
{
Uyku(5000);
devam etmek;
}
başka //normal hata
{
kırmak;
}
}
}
}
if(type==OP_SEL)
{
for(c = 0 ; c < NumberOfTries ; c++)
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,Bid-TakeProfit*Point,ExpertComment,MagicNumber,0,Red);
err=GetLastError();
if(hata==0)
{
kırmak;
}
başka
{
if(err==4 || err==137 ||err==146 || err==136) //Meşgul hataları
{
Uyku(5000);
devam etmek;
}
başka //normal hata
{
kırmak;
}
}
}
}
bilet iadesi);
}
bool CloseOrder(int türü)
{
if(OrderMagicNumber() == MagicNumber)
{
if(type==OP_BUY)
dönüş (OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Violet));
if(type==OP_SEL)
dönüş (OrderClose(OrderTicket(),OrderLots(),Ask,Kayma,Violet));
}
}
void TrailOrder(int tipi)
{
if(TrailingStop>0){
if(OrderMagicNumber() == MagicNumber)
{
if(type==OP_BUY)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Teklif Noktası*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
}
}
}
if(type==OP_SEL)
{
if((OrderOpenPrice()-Ask)>(Nokta*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
}
}
}
}
}
}
void CheckError(int bilet, string Type)
{
if(bilet>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print(Type + " sipariş açıldı : ",OrderOpenPrice());
}
else Print("Açma hatası " + Type + " order : ", ErrorDescription(GetLastError()));
}
bool AllowedPair(dize çifti)
{
bool sonucu=yanlış;
for (int n = 0 ; n < ArraySize(LP); n++)
{
if(Symbol() == LP[n])
{
sonuç = doğru;
}
}
dönüş (sonuç);
}