Nasıl kodlanır? - sayfa 231

 

Harika, teşekkürler!

 

adam, diziler ve işlevler , benim fincan çayım değil.

 

EA için Yardım

Aşağıdakileri yapmak istiyorum:

M15 çerçevelerini kullanma ve bu aralıkta en fazla iki emir açma, mevcut fiyatı önceki M15 kapama(kapatma[1]) ile karşılaştırarak. Ancak bunun kodunu nasıl yazacağımı bilmiyorum çünkü bu prosedürün her sonraki M15 çerçevesinde gerçekleşmesini istiyorum. Başlatma işlevi her zaman kendi kendini yürüttüğü için her M15'te maksimum 2 sipariş saymak için doğru değişkenler nasıl tutulur?

Teşekkür ederim

 

Açık Bekleyen Siparişler komut dosyasıyla ilgili Yardıma ihtiyacınız var.

Burada emirleri açan ve kapatan birçok komut dosyası olduğunu biliyorum ama bekleyen emirleri açacak bir tane bulamıyorum.

İhtiyacım olan 2 komut dosyası, 1 Sellstop ve 1 Buystop.

Buystop'un günlük Pivot'un 15 pip üzerinde bir Buystop emri açmasını ve SellStop'un Günlük pivotun 15 pip altında açmasını istiyorum.

Onunla oynadım ve bir SellStop için aşağıdaki kodu aldım, ancak kodlayıcı değilim ve çalışmıyor. Sanırım bir şeyi dışarı saldım.

Biri bana bu konuda yardım edebilir mi lütfen.

not. boşver, anladım. Teklif fiyatımı PVTGreen olarak değiştirmek zorunda kaldım. 130 hatası alıyorum..

Şu an çalışıyor...

Tamam, Bir sorun daha, Birisi bana Son Kullanma süresini 24 saat sonra aynı gün 22:00'ye nasıl değiştireceğimi söyleyebilir mi?

//+------------------------------------------------------------------+

//| script "send pending order with expiration data" |

//+------------------------------------------------------------------+

int start()

{

int ticket,expiration;

double point;

double PVTYellow = iCustom(NULL, 0, "pivot_alllevels", 0, 0, 0);

double PVTBlue = iCustom(NULL, 0, "pivot_alllevels", 0, 1, 0);

double PVTGreen = iCustom(NULL, 0, "pivot_alllevels", 0, 2, 0);

double PVTRed = iCustom(NULL, 0, "pivot_alllevels", 0, 3, 0);

double PVTMagenta = iCustom(NULL, 0, "pivot_alllevels", 0, 4, 0);

//----

point=MarketInfo(Symbol(),MODE_POINT);

expiration=TimeCurrent()+PERIOD_D1*60;

//----

while(true)

{

ticket = OrderSend(Symbol(),OP_SELLSTOP, 0.10, PVTGreen-15*Point, 3, PVTGreen+20*Point, PVTGreen-20*Point, 0,0,expiration,Red);

if(ticket<=0) Print("Error = ",GetLastError());

else { Print("ticket = ",ticket); break; }

//---- 10 seconds wait

Sleep(10000);

}

//----

return(0);

}

//+------------------------------------------------------------------+
 

Son kullanma tarihini 22:00 yapmak için bunu yapabilirsin...

int iHour = TimeHour(TimeCurrent());

int iMinute = TimeMinute(TimeCurrent());

int iDiff = 22%iHour;

datetime dtExpiryDate = (TimeCurrent()+(iDiff*60*60))-(iMinute*60);

Print(TimeToStr(dtExpiryDate));

Hata denetimi yok, bu yüzden ihtiyacınız olacağını düşünüyorsanız, eklediğinizden emin olun.

Lüks

 

Piyasa İzleme Sembollerini Yakalayın

Herkese selam,

EA'yı manuel olarak beslemek yerine izleme için piyasa saatinde bulunan tüm sembolleri almanın bir yolu olup olmadığını merak ediyordum.

diğer bir deyişle, EA'mın piyasa izleme penceresinde mevcut olan herhangi bir sembolden geçmesini ve belirli bir kriter için onları izlemesini istiyorum.

herhangi bir yardım büyük beğeni topluyor.

 

Bana yardım et - Hesap Bakiyesi Pazar

Merhaba,

Pazar günkü Hesap Bakiyesi (piyasa başarısı Açılışı) ortaya çıktığından beri dünden beri tüm haftamın önbelleğini düzeltmeye çalışıyorum.

Pazar günü EA Hesap Bakiyesi'ni piyasa başarısında Özkaynak Yöneticisine doğru bir şekilde açmam gerekiyor.

çift kullanılmışacc = 0;

...

if (usedacc == 0 | | DayOfWeek () == 0) useacc = Hesap Bakiyesi ();

...

sadece çalışmıyor

Belki biri bana elimden geldiğince yardım edebilir.

Kötü İngilizce için üzgünüm

 

lütfen bu gönderiyi silin - thx

 

göstergeden nasıl veri alırım

Herkese selam,

göstergeden FIBO100 ve FIBO0 değerleri için bir EA'ya ihtiyacım var. Onu nasıl alırım ?

teşekkürler

delirmek

Dosyalar:
 

Nasıl alırsın?

dostum benzer bir sorunla karşılaştım

Scott

MQL'deki "komut dosyaları arası" iletişim (veya "göstergeler arası" iletişim) yalnızca düşünülen arabelleklere gider. Bu kod:

trendset = iCustom(NULL,0,"VGA HISTOGRAM~",0,0);

"VGA HISTOGRAM~" göstergesinin ilk (genel) ara belleğinden mevcut çubuğun değerini almak istediğiniz anlamına gelir. Diğer göstergede bildirilen değişkenlerin değerlerini alamazsınız (ve harici olarak bildirilmiş olmaları önemli değildir) Global değişkenlerle deneyebilirsiniz, ancak global değişkenler çalışmak için sürüklenir ve çalışmaktan daha fazla hata yapma şansı sunar. onlarla düzgün bir şekilde çalışabilir veya bir DLL yazabilirsiniz (metatrader, parametrelerden bağımsız olarak grafik başına yalnızca bir DLL örneği kullanır, böylece herhangi bir türdeki kimliklere bağlı olarak değerleri tutacak ve döndürecek bir tür "semafor" yapabilirsiniz. - bu, mql arası kod iletişimini sağlayacak ve yanlış değişkenlerin okunmasını önleyecektir (örneğin küresel değişkenler kolayca yanılabilir ve siz farkında bile olmadan tamamen farklı bir grafikten değişkenleri okuyabilirsiniz))

Saygılarımızla

Mladen

Aslında bunun için bir çalışma yaptım, sizinle paylaşacağım.

Göstergenizde yeni bir işlev yapın, böylece işler karışmaz.

geçersiz PASSINFO() {

int trendcondtemp; // bunu istediğin isimle değiştir, önemli değil, tembelsen bırak

if (Close[1] > Open[2] && Volume[1] < Volume[2]) trendcondtemp=1; // boğa - bu sadece değişkene bir değer ayarlar, kodunuzu kullanın

if (Close[1] < Open[2] && Volume[1] < Volume[2]) trendcondtemp=2; // ayı - aynı şey farklı koku

if (Hacim[1] > Hacim[2])trendcondtemp=3; // her şey oluyor - meh

if (Symbol()=="USDCHF") GlobalVariableSet("TRENDSETUSDCHF ",trendcondtemp);

if (Symbol()=="GBPUSD") GlobalVariableSet("TRENDSETGBPUSD",trendcondtemp);

if (Symbol()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);

if (Symbol()=="USDJPY") GlobalVariableSet("TRENDSETUSDJPY",trendcondtemp);

if (Symbol()=="USDCAD") GlobalVariableSet("TRENDSETUSDCAD",trendcondtemp);

if (Symbol()=="NZDUSD") GlobalVariableSet("TRENDSETNZDUSD",trendcondtemp);

if (Symbol()=="AUDUSD") GlobalVariableSet("TRENDSETAUDUSD",trendcondtemp);

if (Symbol()=="AUDNZD") GlobalVariableSet("TRENDSETAUDNZD",trendcondtemp);

if (Symbol()=="AUDCAD") GlobalVariableSet("TRENDSETAUDCAD",trendcondtemp);

if (Symbol()=="EURUSD") GlobalVariableSet("TRENDSETEURUSD",trendcondtemp);

if (Symbol()=="AUDCHF") GlobalVariableSet("TRENDSETAUDCHF",trendcondtemp);

if (Symbol()=="AUDJPY") GlobalVariableSet("TRENDSETAUDJPY",trendcondtemp);

if (Symbol()=="CHFJPY") GlobalVariableSet("TRENDSETCHFJPY",trendcondtemp);

if (Symbol()=="EURGBP") GlobalVariableSet("TRENDSETEURGBP",trendcondtemp);

if (Symbol()=="EURAUD") GlobalVariableSet("TRENDSETEURAUD",trendcondtemp);

if (Symbol()=="EURCHF") GlobalVariableSet("TRENDSETEURCHF",trendcondtemp);

if (Symbol()=="EURJPY") GlobalVariableSet("TRENDSETEURJPY",trendcondtemp);

if (Symbol()=="EURNZD") GlobalVariableSet("TRENDSETEURNZD",trendcondtemp);

if (Symbol()=="GBPCHF") GlobalVariableSet("TRENDSETGBPCHF",trendcondtemp);

if (Symbol()=="GBPAUD") GlobalVariableSet("TRENDSETGBPAUD",trendcondtemp);

if (Symbol()=="GBPCAD") GlobalVariableSet("TRENDSETGBPCAD",trendcondtemp);

if (Symbol()=="GBPJPY") GlobalVariableSet("TRENDSETGBPJPY",trendcondtemp);

if (Symbol()=="NZDJPY") GlobalVariableSet("TRENDSETNZDJPY",trendcondtemp);

//petrol/altın/şekil ekle/bundan sonra ne yaparsan yap, komisyoncunun yaptığı her şeyi kapsadım

}

Tamam şimdi para birimine bağlı olduğu için başka bir para birimiyle kesişme ve değerleri doldurma şansı yok. Şimdi, değeri çağırmadan önce bunu başlangıç/ne olursa olsun işlevinize koymalısınız.

int trend seti;

if (Symbol()=="USDCHF") trendset= GlobalVariableGet("TRENDSETUSDCHF");

if (Symbol()=="GBPUSD") trendset= GlobalVariableGet("TRENDSETGBPUSD");

if (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");

if (Symbol()=="USDJPY") trendset= GlobalVariableGet("TRENDSETUSDJPY");

if (Symbol()=="USDCAD") trendset= GlobalVariableGet("TRENDSETUSDCAD");

if (Symbol()=="NZDUSD") trendset= GlobalVariableGet("TRENDSETNZDUSD");

if (Symbol()=="AUDUSD") trendset= GlobalVariableGet("TRENDSETAUDUSD");

if (Symbol()=="AUDNZD") trendset= GlobalVariableGet("TRENDSETAUDNZD");

if (Symbol()=="AUDCAD") trendset= GlobalVariableGet("TRENDSETAUDCAD");

if (Symbol()=="EURUSD") trendset= GlobalVariableGet("TRENDSETEURUSD");

if (Symbol()=="AUDCHF") trendset= GlobalVariableGet("TRENDSETAUDCHF");

if (Symbol()=="AUDJPY") trendset= GlobalVariableGet("TRENDSETAUDJPY");

if (Symbol()=="CHFJPY") trendset= GlobalVariableGet("TRENDSETCHFJPY");

if (Symbol()=="EURGBP") trendset= GlobalVariableGet("TRENDSETEURGBP");

if (Symbol()=="EURAUD") trendset= GlobalVariableGet("TRENDSETEURAUD");

if (Symbol()=="EURCHF") trendset= GlobalVariableGet("TRENDSETEURCHF");

if (Symbol()=="EURJPY") trendset= GlobalVariableGet("TRENDSETEURJPY");

if (Symbol()=="EURNZD") trendset= GlobalVariableGet("TRENDSETEURNZD");

if (Symbol()=="GBPCHF") trendset= GlobalVariableGet("TRENDSETGBPCHF");

if (Symbol()=="GBPAUD") trendset= GlobalVariableGet("TRENDSETGBPAUD");

if (Symbol()=="GBPCAD") trendset= GlobalVariableGet("TRENDSETGBPCAD");

if (Symbol()=="GBPJPY") trendset= GlobalVariableGet("TRENDSETGBPJPY");

if (Symbol()=="NZDJPY") trendset= GlobalVariableGet("TRENDSETNZDJPY");

Lütfen aklınızda bulundurun!!! (muhtemelen bunu zaten anlamışsınızdır) ancak değerlerin değişmesi için kendi para biriminizde çalışan göstergeye sahip olmalısınız, aksi takdirde mt4'te haftalarca saklanan eski değişkeni alırsınız.

Neden: