Nasıl kodlanır? - sayfa 74

 

Şunu mu demek istiyorsun:

if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

[/PHP]or do you mean:

[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

 

Teşekkür ederim.

Şimdi baktığımda, barizdi. Bu işe yaradı. İlk geriye dönük test o kadar iyi değil. Düzeltme zamanı.

 
Big Be:
Açık siparişimin YARISI için Stop'u nasıl değiştireceğimi bilmem gerekiyor. Anladığım kadarıyla bu, örneğin .2 lot ve .2 lot olmak üzere iki sipariş açmak anlamına geliyor.

My EA, lot sayısını bir Para Yönetimi hesaplamasına dayandırır.

Bir emrin stopu değiştirildikten sonra (ulaşılan bir fiyat seviyesine bağlı olarak), o zaman (şimdi farklı) stoplarına ulaşılmadığı sürece çıkış kodumun her iki emri de kapatmasına izin verirdim.

Diğer sipariş, orijinal durağını korur veya muhtemelen onu Başabaş'a taşır.

Partilerin başlangıçtaki miktarı (MM işlevinden) tekse, tek bir lot veya onuncu lot için aşağı yuvarlamak yerine, bunları iki sipariş arasında eşit olmayan bir şekilde bölmek isterim.

Bunun Magic Numbers ve birkaç satır kod içerdiğine inanıyorum. Belki de tüm bunlardan kopyalayabileceğim bir EA vardır.

Herhangi bir yardım için teşekkürler.

büyük olmak

Merhaba; Bunu bana başka bir yerde açıkça sordunuz, ancak bazı cevaplar geldi ve sorunlarınızın hangi kısımlarının devam edebileceğini bilmiyorum. Tekrar soracağın bir tura ihtiyacı olacak....

 

Merhaba Ralph,

ralph.ronnquist:
Merhaba; Bunu bana başka bir yerde açıkça sordunuz, ancak bazı cevaplar geldi ve sorunlarınızın hangi kısımlarının devam edebileceğini bilmiyorum. Tekrar soracağın bir tura ihtiyacı olacak....

Pekala, yanıtların hiçbiri aslında hiçbir sorumu yanıtlamadı - bazıları başkalarının sorularına verdiğim yanıtlarla ilgiliydi.

Böylece tüm parçalar kalır. (Bu konuya gönderdiğim konunun Alıntısı için önceki gönderiye bakın.)

Teşekkürler,

büyük olmak

 

Limit Emrinin ayarlanmasıyla ilgili sorun

Hey çocuklar ve kızlar,

Belirli bir fiyat düzeyinde (bir limit emri) bir ticarete girmek için EA'mda kodu kurmaya çalışıyorum. Bu limit emrinin kodudur:

bilet=OrderSend(Symbol(),OP_BUYLIMIT,lot,Sor+10*Puan,3,BuyStopLoss,0,"xx Satın Al",16384,0,Kırmızı);

lotlar ve BuyStopLoss önceden belirlenmiş hesaplanmış değerlerdir ve buna değiştirdiğimde normal bir piyasa "OP_BUY" işleviyle çalışırlar. Ask+10*Puan sadece şu anki fiyatın üzerinde bulduğum keyfi bir değer, aslında normalde de önceden belirlenmiş BuyEntry kullanıyorum.

Strateji Test Cihazında kodu çalıştırmayı denediğimde aldığım hata:

"2008.02.24 16:00:08 2004.06.17 15:15 xxEA EURUSD,M15: OrderSend hatası 130" (stoploss ile ilgili bir hatadır)

Bu hataya neyin sebep olduğuna dair bir fikriniz var mı? Sanırım limit emrini ayarlama şeklimde bir sorun olmalı, ya da bir piyasa emriyle iyi çalışıyor gibi göründüğü için strateji test cihazında (?) limit emirlerini yerine getiremiyor. Herhangi bir yardım için teşekkürler.

 

Uzman Danışman Oluşturucu?

Lonestar:
Metatrader'da nispeten yeniyim, ticaret konusunda değil ve Expert Adviser Builder'ı kullanarak bazı EA'lar oluşturdum. Çoğu iyi çalışıyor ancak birden fazla çıkış kullandığımda sorun yaşıyorum. VEYA işleviyle mantıkları kapatın (satın alın) ve mantıkları kapatın (sat). AND içeren katlar iyi çalışıyor, ancak OR ile oluşturduğum hiçbir şeyi tanımıyor. Çıkış kodu aşağıdadır.

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

//| Sinyal Başla(Çıkış Sat) |

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

if (CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) Sıra = SIGNAL_CLOSESELL;

Kalın kısım, görmezden geldiği sinyaldir. Herhangi bir fikir. Beni doğru şekilde geriye dönük test yapmaktan alıkoyan tek şey bu. Herhangi biri yardım edebilirse ve geriye dönük testler iyiyse, alabilirsiniz. Kapatılması gereken işlemleri manuel olarak filtreleyerek umut verici görünüyor.

Teşekkürler.

Uzman Danışman Oluşturucu nedir?

 
nondisclosure007:
Uzman Danışman Oluşturucu nedir?

Gordago ya da bu gibi bir şey

 

Değişen parti büyüklüğü.

Merhaba,

Bir EA için değişen parti büyüklüğü kodunu alabilir miyim?

Örneğin, ilk satış emri 0.2 için, ikinci satış emri 0.1 için.

Saygılarımızla,

SIDDEŞ

 
Linuxser:
Gordago ya da bu gibi bir şey

Teşekkürler. Strateji testi için Gordago'yu seviyorum (aslında bir kod yazmak zorunda kalmadan). EA amaçlarım için kullandığı şablonları karıştırmam gerekiyor. Kendi kodlama stillerimi karşılamak için yarattıklarında bazı düzenlemeler yaparken buluyorum. Ama sonuçta, etkilendim.

Gordago'nun ticari bir ürün olduğunu sanıyordum? Hiçbir yerde ne kadara mal olduğunu göremiyorum.

 

ERR_COMMON_ERROR #2 ticaret açarken

Hepinize merhaba,

Geçen gün NewBar sorunlarıyla ilgili harika yardımdan sonra, çok fazla şey öğrenmedim ve programlama EA öğrenmemde büyük ilerleme kaydettim. (Temelde bir öğrenme alıştırması ve test etmek istediğim çok temel bir sistem olarak (şüphesiz karlı olmayacak, ancak bu iyi bir öğrenme alıştırması!)

Her yeni çubuk için bazı senaryolar yazdınız, mevcut paritedeki önceki tüm işlemleri kapatır, ardından 20 dönemlik ATR değerini alır ve ATR değerinin yarısına kadar hareket ettiğinde piyasaya girmek için bir alış stop ve bir satış stop'a girer. pazardan Açık. Daha sonra Kâr Al, ATR değerine ayarlanır (benim hesabıma göre, eğer yolun yarısı gittiyse, günün ortalama hareketinden, Kâr Al'ı vurmaya devam etmesi muhtemel olabilir. Muhtemelen tamamen yanlıştır. burada, ancak yine de değerleri denemek için programlamak istiyorum - Strateji Test Cihazı yerine demo hesabında)

Hepsini programladım ve sonunda NormalizeDouble kullanarak ondalık basamaktan sonra fazladan rakamları nasıl kaldıracağımı çözdüm, ancak şimdi EA çubuğun başında bir satın alma durağı açmaya çalıştığında, ERR_COMMON_ERROR veya Hata #2 ile karşılaşıyorum.

Bu GERÇEKTEN yararsızdır. Aç, Kâr Al ve Zarar Durdur için tanımladığı değerleri kontrol ettim ve bunların hepsi makul görünüyor ve başka ne olabileceğini çözemiyorum. GetLastError'dan bundan daha fazla geri bildirim gelmediği için bu akşam benim hayal kırıklığım oldu! Lütfen yardım et.

ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart

if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set

{

Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);

return(0);

}

double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;

buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);

nbuyopen=NormalizeDouble(buyopen,Digits);

buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);

nbuysl=NormalizeDouble(buysl,Digits);

buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);

nbuytp=NormalizeDouble(buytp,Digits);

sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);

nsellopen=NormalizeDouble(sellopen,Digits);

sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);

nsellsl=NormalizeDouble(sellsl,Digits);

selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);

nselltp=NormalizeDouble(sellsl,Digits);

Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);

int ticketbuy;

ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);

if(ticketbuy<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

int ticketsell;

ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);

if(ticketsell<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

Herhangi bir yardım için çok teşekkürler, eğer bakmakta sakınca yoksa mt4'ü de ekledim. Aynı zamanda, diğer insanlardan alıntı yapmadığım için üzgünüm, ama hepsi bu sitede yayınlanmış olan komut dosyalarının bölümlerini de içeriyor. (Elbette EA'yı yayınlarsam kredi veririm, akşamları hayal kırıklığım olduğu için bunu sadece bu sorunu çözmeye çalışmak için gönderiyorum.)

Howard

Dosyalar:
atr.mq4  6 kb
Neden: