[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 742

 
artmedia70 :

Kodunuzla uğraşma isteksizliği (kötü, ama dürüstçe :)). Sonuç olarak tam olarak ne elde etmek istediğinizi söyleyin, istediğiniz işlevi sizin için yazayım. Dürüst olmak gerekirse, benim için daha kolay olacak. Kodumu bulmak istiyorum ... :)

... Ya da uzan, uyu ve ertesi gün tüm bulmacaların bir araya gelecek ... :) Hiçbir şey anlamadıysam bunu şahsen yapıyorum ... Bu arada, yattım - beş buçuk zaten sabah...


sipariş verildikten sonra, sipariş verme kriteri olan değişkenler tekrar "0" değerini almalıdır,

 
Kim bilir. Göstergenin hareketinin oranını (kendi ölçeğinde), örneğin RSI, geçen para birimi kene oranı ile nasıl alabilirim? Örneğin, RSI 0'dan 50'ye çıkarsa, kaç puana eşit olacağını açıklayayım.
 
Infinity :
Kim bilir. Göstergenin hareketinin oranını (kendi ölçeğinde), örneğin RSI, geçen para birimi kene oranı ile nasıl alabilirim? Açıklayayım, örneğin RSI 0'dan 50'ye çıkarsa - bu kaç puana eşit olur?

Sıfır mum üzerinde RSI göstergesinin son değerini yakalarız. Bir sonraki tik için bekliyoruz. Kene geldi. Fiyatın tam olarak 1 pip olarak işaretlenmesine izin verin. Bakalım RSI nasıl değişmiş. Pekala, hepsi bu - katsayı cebimizde.
 
drknn :

Sıfır mum üzerinde RSI göstergesinin son değerini yakalarız. Bir sonraki tik için bekliyoruz. Kene geldi. Fiyatın tam olarak 1 pip olarak işaretlenmesine izin verin. Bakalım RSI nasıl değişmiş. Pekala, hepsi bu - katsayı cebimizde.

Peki o zaman nasıl oluyor mesela ben 1 puanlık bir katsayı yakaladım, RSI kendi ölçeğinde 50 puan geçti, 50 puan geçtiği ortaya çıktı ama aslında bir düzlük vardı. ve 2 noktalı bir mum. hareket gücü de vardır. Bu durumda belirlemek için beri
 
cyclik33 :

Sevgili Anatoly. Bu kod için çok teşekkür ederim. Başka bir soru, her zaman çalışmasını sağlamak, ancak barda sadece 1 anlaşma yapabilir mi?

Boris, bu daha da kolay. Bu satırı bırak:

 datetime new ;

Kodun en üstünde (böylece ayrıdır ve herhangi bir işlevde değildir).
Ve sonra, OrderSend (...) işlevine yapılan bir çağrının olduğu yerlerde, onu if ifadesinin ek kucaklamalarına dahil edin.

 if ( new != Time[ 0 ]){
   new = Time[ 0 ];
   // здесь функция OrderSend(...);
}

Şimdi, bir sonraki anlaşmayı açmadan önce, mevcut çubukta anlaşma olup olmadığı kontrol edilecek. Eğer öyleyse, mevcut çubuk yeni değişkende depolanmıştır ve mevcut çubuk kaydedilenle eşleşirse, anlaşma açılmayacaktır. Buna göre, çubuk yeniyse, açılış zamanı yeni değişkenin verileriyle eşleşmeyecek, anlaşma açılacak, yeni değişken yeni bir değer alacaktır.

Uzman Danışmanınızın mimarisini tam olarak bilmiyorum, ancak çoğu durumda bu yöntem işe yarayacaktır.

 
FoxUA :

sipariş verildikten sonra, sipariş verme kriteri olan değişkenler tekrar "0" değerini almalıdır,


Kodunuzu derlemeye çalıştım, hatalar aldım.
Sipariş vermek için kriter olarak kullanılan değişkenleri iki yöntemde ( start () ve NewOrder1() ) kullanmanız, bunları tüm fonksiyonların dışında bildirmeniz gerekir:

 bool b,s, //соответственно бай или селл  
bs, // если закрытие по стоплоссу ордера бай
ss, // если закрытие по стоплоссу ордера sell
bt,
st; //      то же по ТП
double bl,sl; // лоты соответсвенно для бай и селл
for döngüsünün devamında
 for ( int cnt=OrdersHistoryTotal();cnt> 0 ;cnt--)
     {
OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);
{ if (OrderMagicNumber()== mag &&
OrderSymbol()== Symbol ()) 
{ if (OrderType() == OP_BUY )  {b= 1 ; if (OrderClosePrice()==OrderTakeProfit()) bt= 1 ; if (OrderClosePrice()==OrderStopLoss()) bs= 1 ; bl=OrderLots()* 10 ; break ;}
if (OrderType() == OP_SELL)  {s= 1 ; if (OrderClosePrice()==OrderTakeProfit()) st= 1 ; if (OrderClosePrice()==OrderStopLoss()) ss= 1 ; sl=OrderLots()* 10 ; break ;}
            }
         }
      }


} //end

onlara gerekli değerlerin atanmasına izin verin ve NewOrder1() işlevinde bir siparişin başarılı bir şekilde açılmasından sonra, orada da sıfırlanmaları gerekir.

 int NewOrder1( int Cmd, double Lot)
{ double TP= 0 ; //тейкпрофит
double SL= 0 ; //стоплосс
double PR= 0 ; //Цена
double LT= 0 ; //Лот
while (!IsTradeAllowed()) Sleep ( 100 );
if (Cmd==OP_BUYLIMIT)
   {PR=Ask- Point *h;
    if (TakeProfit> 0 ) TP=PR+TakeProfit* Point ;
    if (StopLoss> 0 ) SL=PR-StopLoss* Point ;
    if (Lot> 0 ) LT= 3 *Lot;}
int tic1= OrderSend ( Symbol (),Cmd,LT,PR, 3 ,SL,TP, 0 ,mag, 0 , CLR_NONE );
//-----------
if (tic1< 0 ){
   Print ( GetLastError ());
} else {
b=0;
s=0; 
bs=0;
ss=0;
bt=0;
st=0;
bl=0;
sl=0;
}
//-----------
return ( 0 );}

Bu çizgiler boyunca bir şey.

 
Infinity :

Kim bilir. Göstergenin hareketinin oranını (kendi ölçeğinde), örneğin RSI, geçen para birimi kene oranı ile nasıl alabilirim? Örneğin, RSI 0'dan 50'ye çıkarsa, kaç puana eşit olacağını açıklayayım.

Ben de buna benzer bir hedef gibi bir şey sordum kendime, öyle bir “satır” yazdım belki size de yakışır.

 //+------------------------------------------------------------------+
int get_pips_RSI_path( int home_shift, int end_shift){
   double home_index, end_index;
   double home_price, end_price;
   int path;
   
   home_index = iRSI ( NULL , 0 , 14 , PRICE_CLOSE ,home_shift);
   home_price = Close[home_shift];
   end_index = iRSI ( NULL , 0 , 14 , PRICE_CLOSE ,end_shift);
   end_price = Close[end_shift];
   
   if (end_price > home_price)path = (end_price - home_price)/ Point ; else path = (home_price - end_price)/ Point ;
   
   Alert ( "Между значениями RSI " , home_index, " и " , end_index, " было пройденно " , path, " пунктов." );
   return (path);
}
//+------------------------------------------------------------------+

Parametre olarak, gerekli RSI değerlerinin bulunduğu çubukların kaymalarını geçersiniz, karşılık olarak aralarındaki mesafeyi puan olarak alırsınız.

 
ToLik_SRGV :

Ben de buna benzer bir hedef gibi bir şey sordum kendime, öyle bir “satır” yazdım belki size de yakışır.

Parametre olarak, gerekli RSI değerlerinin bulunduğu çubukların kaymalarını geçersiniz, karşılık olarak aralarındaki mesafeyi puan olarak alırsınız.


Teşekkürler, akşam kontrol edeceğim

O kadar güçlü bir his var ki, uzmanın tarihi üzerindeki testin, alıntıların eksik tarihi nedeniyle iyi bir sonuç vermeyeceğini hissediyorum. Anladığım kadarıyla, tekliflerin tarihi mevcut piyasanın arşivlenmesiyle oluşur (şamdan teklifleri), ancak sonuca nasıl güvenileceği, eğer gerçek teklifler (en azından benim başıma gelir) uçarsa, bir süre için basitçe 40 dakika boyunca mum yok, grafik duruyor, sonra mum uçup gidiyor.

 
ToLik_SRGV :

Belki de karlı bir parametre kombinasyonu bulamadınız, "İşe yaramaz sonuçları atla" onay kutusunun işaretini kaldırmayı deneyin.

Ve optimize etmek istediğiniz parametrelerin yanında EA ayarlarını işaretlediğinizden emin olmanın yanı sıra adım ve optimizasyon limitlerini de belirlemeyi unutmayın.

Teşekkürler, bu doğru, "İşe yaramaz sonuçları atla" onay işareti vardı.
 
artmedia70 :


Arkadaşlar! Trend çizgisi yeniden oluşturulduğunda ortaya çıkan gereksiz sinyallerden nasıl kurtulacağımı çözemiyorum. Eğilim çizgisi (örnekte, azalan), belirli bir çubuk aralığında bulunan en büyük ekstremumdan en küçük ekstrema doğru oluşturulur. Sorun, yeni bir düşük ekstremum oluştuğunda, trend çizgisinin (istenildiği gibi) ona atlamasıdır.

Ancak, trend çizgisinin ilk çubuğunda da, kesişimi gösterge çizgisi ile bir sinyal veren trend çizgisi değerine sahip seviyeler oluşturulur. İlk çubuktaki gösterge çizgisi bu seviyenin altındaysa ve ikinci çubukta bu seviyenin üzerindeyse yukarıdan aşağıya bir kesişimimiz var.

Yani... Eğilim çizgisi yeni bir minimum uç noktaya atladığında, ikinci çubuktaki hindi çizgisinin eğilim çizgisinden ve inşa edilen seviyeden daha yüksek olduğu ve ilk çubukta daha düşük olduğu bir durum ortaya çıkar, yani. gereksiz bir satış sinyali belirir (bu durumda):


Şekil, trend çizgisinin nasıl yeni bir uç noktaya sıçradığını (yer aşağı okla gösterilir) ve ilk çubukta (yatay kırmızı çizgi) yeni trend çizgisinin fiyat seviyesini gösterir.
ikincisinde AD satırından daha düşük oldu, ilkinde AD satırı fiyat seviyesinin altında...
Buna göre, trend çizgisi bir alt uç noktaya taşınarak gereksiz bir sinyal simüle edildi... Aynı gereksiz sinyal biraz daha önce gerçekleşti -
Dikey açık mavi bir çizgi ile işaretledim...

Dolayısıyla soru - böyle bir durumdan nasıl kaçınılır? Bir şeyler bulmaya çalışmaktan yoruldum...
Düşüncesi olan var mı? Teşekkürler... :)



Anladığım kadarıyla, gösterge çizgisi trend çizgisini geçtiğinde bir ticaret sinyali ortaya çıkmalı ve bunun tersi değil, ancak şunu ve şunu yaparsınız. Trend çizgisinin konumunun önceki değerlerini statik değişkenlerde saklayın ve değişmedilerse - kesişim olup olmadığını kontrol edin, trend çizgisinin konumu değiştiyse - sıfırlayın...

Neden: