Nasıl kodlanır? - sayfa 176

 

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.

Dosyalar:
 

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.

 
chiwing:
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ürler

Yorum() 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

Dosyalar:
how_to_code.jpg  134 kb
 

Ç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

Calvon:
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ç);

}