BrotherPyrus : hothand, beş basamaklı MT4'te çalışır, ancak dört basamaklı bir platformda çalışmaz. Buna neyin sebep olduğu ve nasıl düzeltileceğine dair herhangi bir ipucu var mı?
EA'lar 4/5 basamak, TP, SL ve kaymaya göre ayarlanmalıdır. ECN brokerlerinde önce açmanız ve SONRA durakları ayarlamanız gerekir.
if (iBarHour >= iOpenHour && iBarHour <= iOpenHour + iBarsToTrade && Tradeopen()==false) // Check if time is ok to trade & no trade is open
{
// if(High[2]>High[1] && Low[2]<Low[1]) // see if we have an inside barif ( iHigh (hothand(), 60 , 2 )> iHigh (hothand(), 60 , 1 ) && iLow (hothand(), 60 , 2 ) < iLow (hothand(), 60 , 1 )) // see if we have an inside bar
{ // on the hothand pair// IB found if ( iHigh (hothand(), 60 , 1 ) > dDayOpenPrice) // IB high on hothand pair is greater than day open price bullish signal
{
int buyspread= MarketInfo (hothand(),MODE_SPREAD);
double buyentry = iHigh (hothand(), 60 , 1 ) + 10 + buyspread; //Low of prev bar + 1 pip + spreaddouble buystop = iLow (hothand(), 60 , 1 ) - 10 ; //Low of prev bar - 1 pipdouble buytpx1 = iHigh (hothand(), 60 , 1 )+( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 )); //1:1 r:rdouble buytpx3 = iHigh (hothand(), 60 , 1 )+( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 ))* 3 ; // 1:3 r:rOrderSend ( Symbol (),OP_BUY, 1 , Ask, 3 , buystop, buytpx1, "DIBSBUY" , Mnumber1); //Open buy orderOrderSend ( Symbol (),OP_BUY, 1 , Ask, 3 , buystop, buytpx3, "DIBSBUY" , Mnumber3);
}
if ( iLow (hothand(), 60 , 1 ) < dDayOpenPrice) // IB low on hothand pair is lower than day open price bearish signal
{
int sellspread= MarketInfo (hothand(),MODE_SPREAD);
double sellentry = iLow (hothand(), 60 , 1 )- 10 ; //Low of prev bar - 1 pip double sellstop = iHigh (hothand(), 60 , 1 )+ 10 + sellspread; // High of prev bar + 1 pip + Spreaddouble selltpx1 = iLow (hothand(), 60 , 1 )-( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 )); //1:1 r:rdouble selltpx3 = iLow (hothand(), 60 , 1 )-( iHigh (hothand(), 60 , 1 )- iLow (hothand(), 60 , 1 ))* 3 ; // 1:3 r:rOrderSend ( Symbol (),OP_SELL, 1 , Ask, 3 , sellstop, selltpx1, "DIBSSELL" ,Mnumber1); //Open Sell OrderOrderSend ( Symbol (),OP_SELL, 1 , Ask, 3 , sellstop, selltpx3, "DIBSSELL" ,Mnumber3); //Open Sell Order
}
}
}
//
}
tamam döndüm,
Bu, kodumun işlemlerin yürütüldüğü kısmı, şu an için sadece 5 basamakla çalışacağım. Buradaki fikir, gün için hangi çiftin ticaret yapmak için en iyi olduğunu seçmek için hothand fonksiyonumu kullanmam. Bu kod, 1 saatlik grafikte bir iç çubuk taraması yapmalıdır. ( Hothand işlevi, btw çiftinin bir dizisini döndürür) Bir iç çubuk bulduğunda, test amacıyla düz bir alım veya satım ticareti açmasını sağladım. Backtester'ın 1 grafikten birden fazla çift ticareti yapabileceğinden emin değilim? Kullandığı tüm çiftler için 1 dakikalık geçmişi indirdim. Ama sadece iliştirdiğim grafik olan eurusd'da işlem açıyor gibi görünüyor,
WHRoeder, uğradığınız ve tekrar yardım ettiğiniz için teşekkür eder. Peki bir adet ticaret açmak için doğru yol, onu açmak, sonra geri dönüp açıldıktan sonra sl ve tp'yi doldurmak mı? Bu kodda yanlış olan milyonlarca şeyi de görebileceğinize eminim.
Bu, kodumun işlemlerin yürütüldüğü kısmı, şu an için sadece 5 basamakla çalışacağım. Buradaki fikir, gün için hangi çiftin ticaret yapmak için en iyi olduğunu seçmek için hothand fonksiyonumu kullanmam. Bu kod, 1 saatlik grafikte bir iç çubuk taraması yapmalıdır. ( Hothand işlevi, btw çiftinin bir dizisini döndürür) Bir iç çubuk bulduğunda, test amacıyla düz bir alım veya satım ticareti açmasını sağladım. Backtester'ın 1 grafikten birden fazla çift ticareti yapabileceğinden emin değilim? Kullandığı tüm çiftler için 1 dakikalık geçmişi indirdim. Ama sadece iliştirdiğim grafik olan eurusd'da işlem açıyor gibi görünüyor,
Bazı genel yorumlar:
Ask'ta alırsın ve Bid'de satarsın
komisyoncunuz ECN tipi bir komisyoncuysa, siparişi verirken SL ve TP ayarlayamazsınız (bu durumda onları 0'a ayarlayın), siparişi vermeniz ve ardından SL & TP'yi eklemek için siparişi değiştirmeniz gerekir.
her zaman sipariş vermenin sonucunu kontrol edin ve iade edilen hataları kontrol edin, buna göre hareket ederek bunları halletmeniz gerekecektir.
Bu EA'yı birden fazla çizelgede kullanmayı planlıyorsanız, yani birden çok çizelgeden Siparişler yerleştirmeyi planlıyorsanız, Sipariş İçeriği Meşgul'den kaçınmak için bir tür Mutex'e ihtiyacınız olacaktır (WHRoeder'ın gönderilerine bakın, mükemmel bir Mutex'i var)
Damm WHRoeder, haklısın "duraklarımız hothand() çiftine dayanıyor ama Symbol() ile sipariş açıyorsun" bunu fark etmemiştim. Ne kadar aptalsın. Bu şeyler, siz onu öğrenmeye çalışırken zihinsel olarak çok yorucu oluyor. Ama evet aptal. Bu karmaşayı aştığın için teşekkürler. Muhtemelen bir ara vereceğim ve yarın taze bir zihinle döneceğim. Onlara işaret ettiğin şeyleri düzelteceğim.
Ask/Bid, geçerli Symbol() fiyatıdır, ancak başka bir çift açmaya çalışıyorsunuz. Sahte fiyat.
Diğer TF/çiftleri için test cihazından çubuk sıfır değerleri alamazsınız
Test cihazında, IIRC'de diğer çiftlerin işlemlerini açamazsınız.
OrderSend işlevi için bilinmeyen sembol adı USDCHF
O ipi nereden buluyorsun? Mevcut grafik aynı kalıp mı yoksa USD,EUR veya USD/EUR veya USDEURm veya USDEURfxf vb.
SADECE mevcut çifti takas etmenizi öneririm. hothand() geçerli değilse, işlem yapılmaz. Test cihazında bu şekilde çalışır, EA'yı her zaman diğer çiftlere yerleştirebilir, böylece hangi çiftlerin takas ettiğini kontrol edebilirsiniz ve tüm tuzaklardan kaçınırsınız.
Hey millet, aşağıdakileri yapan bir kod yapmaya çalışıyorum
externstring sComment4 = "Max Hours allowed before pending orders are deleted" ;
externint pendinglimit = 4 ;
// * EVERYTIME A TRADE GETS TRIGGERED
bartraded = TimeHour ( TimeCurrent ());
// DELETE PENDING ORDERS THAT HAVE NOT BEEN TRIGGERED WITHIN if ( TimeHour ( TimeCurrent ()) > bartraded + pendinglimit && Tradeopen()==true) // Check to see if pending orders have expired
{
for ( int tnumber = OrdersTotal ()- 1 ; tnumber >= 0 ; tnumber--) //scan through open orders
{
if ( OrderSelect (tnumber, SELECT_BY_POS) &&
OrderType ()==(OP_BUYSTOP||OP_SELLSTOP) && // The order selected is either a pending buy on stop order or a buy on sell orderOrderMagicNumber ()==(Mnumber1||Mnumber3)) // The orders magic number is the same as the magic number used in this ea
{
OrderSelect (tnumber, SELECT_BY_POS); // Select orderOrderDelete (tnumber); // Delete it
}
}
}
x bar sayısı için bekleyen bir emir açılmışsa, bar sayısı x'i aşmışsa silin
Hey Daz & Co,
hothand, beş basamaklı MT4'te çalışır, ancak dört basamaklı bir platformda çalışmaz.
hothand, beş basamaklı MT4'te çalışır, ancak dört basamaklı bir platformda çalışmaz. Buna neyin sebep olduğu ve nasıl düzeltileceğine dair herhangi bir ipucu var mı?
tamam döndüm,
Bu, kodumun işlemlerin yürütüldüğü kısmı, şu an için sadece 5 basamakla çalışacağım. Buradaki fikir, gün için hangi çiftin ticaret yapmak için en iyi olduğunu seçmek için hothand fonksiyonumu kullanmam. Bu kod, 1 saatlik grafikte bir iç çubuk taraması yapmalıdır. ( Hothand işlevi, btw çiftinin bir dizisini döndürür) Bir iç çubuk bulduğunda, test amacıyla düz bir alım veya satım ticareti açmasını sağladım. Backtester'ın 1 grafikten birden fazla çift ticareti yapabileceğinden emin değilim? Kullandığı tüm çiftler için 1 dakikalık geçmişi indirdim. Ama sadece iliştirdiğim grafik olan eurusd'da işlem açıyor gibi görünüyor,
WHRoeder, uğradığınız ve tekrar yardım ettiğiniz için teşekkür eder. Peki bir adet ticaret açmak için doğru yol, onu açmak, sonra geri dönüp açıldıktan sonra sl ve tp'yi doldurmak mı? Bu kodda yanlış olan milyonlarca şeyi de görebileceğinize eminim.
4/5 basamak için kaymayı ayarlamıyor. ECN uyumlu değil
NEDEN çalışmadığını öğrenmek için her zaman dönüş kodlarını test edin
buystop = iLow (hothand()...Duraklarınız hothand() çiftine dayalıdır, ancak Symbol() ile bir sipariş açıyorsunuz. Aynı değillerse, duraklar tamamen sahtedirtamam döndüm,
Bu, kodumun işlemlerin yürütüldüğü kısmı, şu an için sadece 5 basamakla çalışacağım. Buradaki fikir, gün için hangi çiftin ticaret yapmak için en iyi olduğunu seçmek için hothand fonksiyonumu kullanmam. Bu kod, 1 saatlik grafikte bir iç çubuk taraması yapmalıdır. ( Hothand işlevi, btw çiftinin bir dizisini döndürür) Bir iç çubuk bulduğunda, test amacıyla düz bir alım veya satım ticareti açmasını sağladım. Backtester'ın 1 grafikten birden fazla çift ticareti yapabileceğinden emin değilim? Kullandığı tüm çiftler için 1 dakikalık geçmişi indirdim. Ama sadece iliştirdiğim grafik olan eurusd'da işlem açıyor gibi görünüyor,
Bazı genel yorumlar:
Ask'ta alırsın ve Bid'de satarsın
komisyoncunuz ECN tipi bir komisyoncuysa, siparişi verirken SL ve TP ayarlayamazsınız (bu durumda onları 0'a ayarlayın), siparişi vermeniz ve ardından SL & TP'yi eklemek için siparişi değiştirmeniz gerekir.
her zaman sipariş vermenin sonucunu kontrol edin ve iade edilen hataları kontrol edin, buna göre hareket ederek bunları halletmeniz gerekecektir.
Bu EA'yı birden fazla çizelgede kullanmayı planlıyorsanız, yani birden çok çizelgeden Siparişler yerleştirmeyi planlıyorsanız, Sipariş İçeriği Meşgul'den kaçınmak için bir tür Mutex'e ihtiyacınız olacaktır (WHRoeder'ın gönderilerine bakın, mükemmel bir Mutex'i var)
Ama sadece iliştirdiğim grafik olan eurusd'da işlem açıyor gibi görünüyor,
Evet, . . .
Sembol (), EA/Göstergenin bağlı olduğu çifttir, bunun yerine bunu mu yapmak istediniz?
Evet bunu yapmak istemiştim ama şimdi bu hatayı alıyorum
http://clip2net.com/s/144hq
Hothand işlevinin çift çıktısını tanımıyor gibi. Hothand işlevinin çıktısı bir dizedir, bu yüzden neyin işe yaramayacağını anlamıyorum
Hothand işlevinin çift çıktısını tanımıyor gibi. Hothand işlevinin çıktısı bir dizgedir, bu yüzden neyin işe yaramayacağını anlamıyorum
Hey millet, aşağıdakileri yapan bir kod yapmaya çalışıyorum
x bar sayısı için bekleyen bir emir açılmışsa, bar sayısı x'i aşmışsa silin
Belki mantığımda bir sorun olabilir?