Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 513

 

doğru yapıyorum.

y = OrderOpenPrice()-Sor;

Son açık emrin fiyatından mevcut fiyatı çıkarsam?

int i_buy=0; int i_sell=0;

for(int i=0;i<OrdersTotal();i++){

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){

switch(OrderType()){// Есть ли открыте ордера

case OP_BUY:

i_buy++;

break;

case OP_SELL:

i_sell++;

break;

}

y = OrderOpenPrice()-Ask;

}

}


if((i_buy==0 && i_sell==0) || y > Step) //--- нет открытых ордеров, открываем или расстояние от последнего ордера до текущей цены. Больше step

OrderSend(Symbol(), OP_BUY,StartLot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);


 
woin2110 :

https://docs.mql4.com/ru/trading/orderselect https://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots

çift z; //"z" değişkeni bildiriliyor
çift y; //"y" değişkeni bildiriliyor


if(OrderSelect(10,SELECT_BY_POS)==true) //seçilen sipariş (bilet ile) mevcutsa

{

OrderLots()=z //bu siparişin lotunu "z" değişkenine atayın

OrderOpenPrice()=y //açık fiyatı "y" değişkenine atayın

}

böyle dene

İnsanların kafasını karıştırıp saçma sapan şeyler söyleme lütfen. Bilet üzerinde konuşun ve seçimi dizine yazın. Biletle seçerseniz, havuzu belirtmeniz gerekmez - işlev onu yok sayar ve iki listeden herhangi birinde seçer - olduğu yerde. Ve siparişin hangi listeden seçildiğini kontrol etmek için, başarılı bir seçimden sonra, emrin kapanış saatini kontrol etmeniz gerekir ve eğer sıfırdan büyükse, sipariş zaten kapalıdır, aksi takdirde siparişten seçilir. açık pozisyonların listesi

Bir değişkene lot değeri atmıyorsunuz tam tersine seçilen siparişin lotunu döndüren bir fonksiyon atamaya çalışıyorsunuz değişkenin değeri genelde saçma

Açık fiyatı döndüren bir fonksiyonla tam olarak aynı şeyi yapmaya çalışıyorsunuz.

 

artmedia70 :

Bana neyi yanlış yaptığımı söyle. Her şey doğru gibi görünüyor.

if((i_buy==0 && i_sell==0) || y > Adım)

Veya (i_buy==0 && i_sell==0) veya y > adım. Eğer bu doğruysa. O halde geçelim, sipariş açalım...

 
evillive :

Alpari ise, o zaman asla mümkün olmadı. Başka bir DC varsa - hesaba bağlıdır. Ancak her durumda, programcı bunu öngörmelidir. Evet ve bir şeyler yapmaya başlamadan önce ticaret şartları incelenmeli, orada her şey yazıyor.

8-800-200-01-31 adresindeki destek hizmeti, geçen haftanın sonunda, SL ve TP'yi ayarlarken aynı anda ECN hesaplarında emirlerin açılmasına izin veren bir hatayı düzelttiklerini açıkladı. Son pozisyonu perşembe günü kapattım.

Ticaret İşlemleri Kuralları'nın bu konuda hiçbir şey söylemediği ve artık sadece OrderModify ()'ın kaydedeceği konusunda haklısınız.

Cevap için teşekkürler.

 
Zolotai :

artmedia70 :

Bana neyi yanlış yaptığımı söyle. Her şey doğru gibi görünüyor.

if((i_buy==0 && i_sell==0) || y > Adım)

Veya (i_buy==0 && i_sell==0) veya y > adım. Eğer bu doğruysa. O halde geçelim, sipariş açalım...

soruyu pek anlamadım...

Orada neyi kaçırdığımızı bilmiyorum ama bir sipariş açılabilir - bu mümkün ... Yani, bu koşula tabi olarak bir sipariş açmanız gerekiyorsa, o zaman

Burada ne yazdığını söyleyebilirim:

Hem i_buy hem de i_sell sıfıra eşitse bir sipariş açın. Peki, veya bunlardan biri sıfıra eşit değilse veya belki ikisi de eşit değilse, ancak aynı zamanda y Adım'dan büyükse, o zaman bir sipariş açın.

 
artmedia70 :

soruyu pek anlamadım...

Orada neyi kaçırdığımızı bilmiyorum ama bir sipariş açılabilir - bu mümkün ... Yani, bu koşula tabi olarak bir sipariş açmanız gerekiyorsa, o zaman

Burada ne yazdığını söyleyebilirim:

Hem i_buy hem de i_sell sıfıra eşitse bir sipariş açın. Peki, veya bunlardan biri sıfıra eşit değilse veya belki ikisi de eşit değilse, ancak aynı zamanda y Adım'dan büyükse, o zaman bir sipariş açın.



For döngüsünde doğru anladım. İlk açık siparişten sonuncuya kadar ne sıraladığımız. Buna göre son siparişin fiyatını alıyorum.

Daha fazla burada. OnTick'te Kayıtlı Uyarı ("d"). Kodu test cihazında çalıştırdım ama ses sinyali yok, pencere yok.

 
Zolotai :

For döngüsünde doğru anladım. İlk açık siparişten sonuncuya kadar ne sıraladığımız. Buna göre son siparişin fiyatını alıyorum.

Daha fazla burada. OnTick'te Kayıtlı Uyarı("d"). Kodu test cihazında çalıştırdım ama ses sinyali yok, pencere yok.

Test cihazındaki uyarılar, test cihazı günlüğünde görüntülenir. Ama nikromun atlanması, seçilmesi, numaralandırılması döngüsü net değil. Özü sonunda ne istediğinizi bulunabilir mi?
 

Tünaydın!

Bir Uzman Danışmanı düzenlemeye çalışırken "MetaEditor bulunamadı" ile nasıl başa çıkılır? MetaTrader 600 inşa etti.

Eski yapılarda böyle bir komisyon hatırlamıyorum ...

Bunun nedeni, bunun gözlemlendiği bilgisayarın oldukça düşük güçlü olması ve sürekli olarak %50-75 oranında yüklenmesi olabilir. Orada dönen 7 MT4 örneği vardır, ancak normal koşullar altında (yani TeamViewer aracılığıyla erişim ve MetaEditor başlatma girişimleri gibi ek harici yük olmadan), performansı yeterlidir ve arka planda çalışan Görev Yöneticisi 15-20 dakika ortalama CPU gösterir kullanım <=%45-50.

Bu komisyon, vakaların %100'ünde gerçekleşmez ve olağanüstü bir sabır ve azim sergileyen MetaEditor, yine de 5-10-25. zamanlardan başlar. Ancak MetaEditor'u başlatmaya çalışmak gerçekten yarım saat sürüyor.

 
artmedia70 :
Test cihazındaki uyarılar, test cihazı günlüğünde görüntülenir. Ama nikromun atlanması, seçilmesi, numaralandırılması döngüsü net değil. Özü sonunda ne istediğinizi bulunabilir mi?


Ben sadece en basit robotu yazmak istiyorum. Martin üzerinde bağımsız olarak çalışmak.

İşte hata burada.

y = OrderOpenPrice()-Sor;

Tam sayıları düşündüğüm gibi alamadım. Ve örneğin 0.0044. 44, tam sayı nasıl elde edilir?

 
Zolotai :


Ben sadece en basit robotu yazmak istiyorum. Martin üzerinde bağımsız olarak çalışmak.

İşte hata burada.

y = OrderOpenPrice()-Sor;

Tam sayıları düşündüğüm gibi alamadım. Ve örneğin 0.0044. 44, tam sayı nasıl elde edilir?



 int y = int (( OrderOpenPrice ()- Ask )/ Point );