Nasıl kodlanır? - sayfa 108

 

Komut satırından bir MetaTrader betiği çalıştırma

Bir satın alma emrini yürütecek komut satırından bir komut dosyası veya program çalıştırabilmek istiyorum. Herhangi bir kural yok. Komut satırından yazdığımda 1 EURUSD Uzun pozisyon alması gerekiyor.

Bu nasıl yapılabilir?

Teşekkürler,

paco

 

Basit ok tabanlı gösterge ve EA

Herkese selam.

Son zamanlarda, ok tabanlı bir gösterge üzerinde çalışacak basit bir EA yapmaya çalışıyordum. EA'nın herhangi bir zamanda bir siparişi sürdürmesini sağlamaya çalışıyorum. Ok aşağıyı gösteriyorsa önceki alış emri kapatılır ve satış emri açılır. Ok yukarıyı gösteriyorsa önceki satış emri kapatılır ve alış emri açılır. Kodumu doğrulamak için test cihazını (görselleştirme modu) kullanıyorum. Görünen o ki, ne kadar denersem deneyeyim, ok göstergesi yukarı veya aşağıyı gösterdiğinde EA pozisyonları kapatmıyor ve açmıyor. Geri test, EA'nın düzgün çalışmadığını doğrular. Gösterge tarafından gösterilen ok noktalarında emirleri açıp kapatmak yerine, EA emri farklı bir zamanda kapatır/açar. Kodumun neden çalışmadığını anlayamıyorum.

Start ifadesinin başında aşağıdaki koda sahibim:

if (Time[0] == saveTime) {

dönüş (0);

} başka {

saveTime = Zaman [0];

}

Bu (umarım), start deyimindeki kodun yalnızca yeni çubuk oluştuğunda yürütülmesini sağlayacaktır. Daha sonra başlangıç altyordamının gövdesinde, göstergeyi iCustom işleviyle sorgularım. İstek aşağıdaki gibi görünür:

iÖzel (... 1)

Birin son argümanı bir önceki oluşturulan çubuğu belirtir, bu yüzden 0 değildir. Daha sonra açılan emri OrderClose ile kapatıp OrderSend ile yeni bir tane açıyorum. Her iki işlevin de anında yürütülebilmesi gerektiğini düşünüyorum.

Sonuç olarak: Ok göstergesine dayalı bir EA oluşturmaya çalışıyorum. Gösterge yukarı veya aşağıyı gösterir. Gördüğüm kadarıyla (ve muhtemelen yanılıyorum), yapmam gereken tek şey önceki siparişi kapatmak ve bir sonraki çubuk oluştuğunda yenisini açmak. Bu soruna herhangi bir girişi çok takdir ediyorum.

Herkese teşekkürler.

 

Göstergeye son kullanma tarihi koymak için nasıl kod yazacağımı söyleyen var mı?

Teşekkürler.

 
 
newdigital:
Bu konuya bakın https://www.mql5.com/en/forum/174194

Bu bağlantı için teşekkürler. Sonunda aradığım sayfayı burada buldum

 

1 ayrı pencerede 2 Gösterge Nasıl Alınır?

Biri, birbirleriyle örtüşmeleri için 2 göstergenin ayrı bir pencereye nasıl alınacağı konusunda fikrimi tazeleyebilir mi?

Şimdiden yardımlarınız için teşekkürler!

Dave

 

EA'nın yalnızca siparişleri açması gerekiyordu

Herkese selam,

Herhangi bir çift için 00:00AM GMT'de 4 farklı sipariş açan bir EA oluşturmama yardım edebilecek biri var mı diye merak ediyordum.

1 lot satın al

1 lot satın al

1 lot satmak

1 lot satmak

hepsi 00:00GMT'de açılacak

yardım için teşekkürler

Ryan56

 
bdht:
Herkese selam.

Son zamanlarda, ok tabanlı bir gösterge üzerinde çalışacak basit bir EA yapmaya çalışıyordum. EA'nın herhangi bir zamanda bir siparişi sürdürmesini sağlamaya çalışıyorum. Ok aşağıyı gösteriyorsa önceki alış emri kapatılır ve satış emri açılır. Ok yukarıyı gösteriyorsa önceki satış emri kapatılır ve alış emri açılır. Kodumu doğrulamak için test cihazını (görselleştirme modu) kullanıyorum. Görünen o ki, ne kadar denersem deneyeyim, ok göstergesi yukarı veya aşağıyı gösterdiğinde EA pozisyonları kapatmıyor ve açmıyor. Geri test, EA'nın düzgün çalışmadığını doğrular. Gösterge tarafından gösterilen ok noktalarında emirleri açıp kapatmak yerine, EA emri farklı bir zamanda kapatır/açar. Kodumun neden çalışmadığını anlayamıyorum.

Start ifadesinin başında aşağıdaki koda sahibim:

if (Time[0] == saveTime) {

dönüş (0);

} başka {

saveTime = Zaman [0];

}

Bu (umarım), start deyimindeki kodun yalnızca yeni çubuk oluştuğunda yürütülmesini sağlayacaktır. Daha sonra başlangıç altyordamının gövdesinde, göstergeyi iCustom işleviyle sorgularım. İstek aşağıdaki gibi görünür:

iÖzel (... 1)

Birin son argümanı bir önceki oluşturulan çubuğu belirtir, bu yüzden 0 değildir. Daha sonra açılan emri OrderClose ile kapatıp OrderSend ile yeni bir tane açıyorum. Her iki işlevin de anında yürütülebilmesi gerektiğini düşünüyorum.

Sonuç olarak: Ok göstergesine dayalı bir EA oluşturmaya çalışıyorum. Gösterge yukarı veya aşağıyı gösterir. Gördüğüm kadarıyla (ve muhtemelen yanılıyorum), yapmam gereken tek şey önceki siparişi kapatmak ve bir sonraki çubuk oluştuğunda yenisini açmak. Bu soruna herhangi bir girişi çok takdir ediyorum.

Herkese teşekkürler.

Sinyalinize sadece bir kez bir çubuk bakarsanız ve sinyal değiştiğinde "sisteminiz" kapanır ve tersine dönerse, girişi kontrol etmeden ÖNCE çıkışı kontrol etmek önemlidir . Değilse, yeni bir giriş sinyali olduğunda, EA ticarete giremez çünkü önceki hala açık. Ve EA pozisyonu kapattığında, sadece bir sonraki çubuğa girer çünkü kodun bu kısmına sadece bir çubuk gelir.

Umarım bu mantıklıdır (ingilizcem ile!).

FerruFx

 
Dave137:
Biri, birbirleriyle örtüşmeleri için 2 göstergenin ayrı bir pencerede nasıl alınacağı konusunda fikrimi tazeleyebilir mi?

Şimdiden yardımlarınız için teşekkürler!

Dave

Bu sayfaya bakın: https://www.mql5.com/en/forum/172923

 

Bu, yeni çubuk sorununuzu çözecektir (mql4.com'daki bir makaleden alınmıştır):

bool funcIsNewBar()

{

bool res=false;

// the array contains open time of the current (zero) bar

// for 7 (seven) timeframes

static datetime _sTime[7];

int i=6;

int timeFrame = Period();

switch (timeFrame)

{

case 1 : i=0; break;

case 5 : i=2; break;

case 15 : i=3; break;

case 30 : i=4; break;

case 60 : i=5; break;

case 240: i=6; break;

case 1440:break;

default: timeFrame = 1440;

}

//----

if (_sTime==0 || _sTime!=iTime(Symbol(),timeFrame,0))

{

_sTime = iTime(Symbol(),timeFrame,0);

res=true;

}

//----

return(res);

}[/CODE]

Call this function like this

int start()

{

if (funcIsNewBar)

{

//run some code

}

return (0);

}

That'll get code to run ONLY when there is a new bar.

What you need to do is find out in the data window of MT4 what the values are when there is NO arrow being put on the chart by your indicator. For example, the indicator may may have 0's or may be blank.

So all you do then is call the value of the indicator at each open [CODE]varMyIndieValue=iCustom();

if (varMyIndieValue>0) //there's an arrow

{

//run some code

}
bdht:
Herkese selam.

Son zamanlarda, ok tabanlı bir gösterge üzerinde çalışacak basit bir EA yapmaya çalışıyordum. EA'nın herhangi bir zamanda bir siparişi sürdürmesini sağlamaya çalışıyorum. Ok aşağıyı gösteriyorsa önceki alış emri kapatılır ve satış emri açılır. Ok yukarıyı gösteriyorsa önceki satış emri kapatılır ve alış emri açılır. Kodumu doğrulamak için test cihazını (görselleştirme modu) kullanıyorum. Görünen o ki, ne kadar denersem deneyeyim, ok göstergesi yukarı veya aşağıyı gösterdiğinde EA pozisyonları kapatmıyor ve açmıyor. Geri test, EA'nın düzgün çalışmadığını doğrular. Gösterge tarafından gösterilen ok noktalarında emirleri açıp kapatmak yerine, EA emri farklı bir zamanda kapatır/açar. Kodumun neden çalışmadığını anlayamıyorum.

Start ifadesinin başında aşağıdaki kod var:

if (Time[0] == saveTime) {

dönüş (0);

} başka {

saveTime = Zaman [0];

}

Bu (umarım), start deyimindeki kodun yalnızca yeni çubuk oluştuğunda yürütülmesini sağlayacaktır. Daha sonra başlangıç altyordamının gövdesinde, göstergeyi iCustom işleviyle sorgularım. İstek aşağıdaki gibi görünür:

iÖzel (... 1)

Birin son argümanı bir önceki oluşturulan çubuğu belirtir, bu yüzden 0 değildir. Daha sonra açılan emri OrderClose ile kapatıp OrderSend ile yeni bir tane açıyorum. Her iki işlevin de anında yürütülebilmesi gerektiğini düşünüyorum.

Sonuç olarak: Ok göstergesine dayalı bir EA oluşturmaya çalışıyorum. Gösterge yukarı veya aşağıyı gösterir. Gördüğüm kadarıyla (ve muhtemelen yanılıyorum), yapmam gereken tek şey önceki siparişi kapatmak ve bir sonraki çubuk oluştuğunda yenisini açmak. Bu soruna herhangi bir girişi çok takdir ediyorum.

Herkese teşekkürler.