[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 215

 

Ve yine de, danışmandaki açık siparişlerin sayısı nasıl sınırlandırılır, aksi takdirde onları bir kartopu gibi açar? daha önce bir kod parçası yayınladı.

 
stalkertula :

Ve yine de, danışmandaki açık siparişlerin sayısı nasıl sınırlandırılır, aksi takdirde onları bir kartopu gibi açar? daha önce bir kod parçası yayınladı.

1. Sipariş verme ihtiyacını kontrol ettik, evet ise, o zaman ...

2. Mevcut siparişlerin sayısını kontrol ettik, evet ise, o zaman...

3. Bir önceki siparişi (veya diğer herhangi bir gecikme kriterini) verdikten sonra geçen süre kontrol edildi, evet ise...

4. Sipariş verildi.

Genel olarak böyle bir şey...

Her ne kadar... bu öğelerin her biri, sipariş ayar parametrelerini ayarlamak için çeşitli gerekli kontrolleri de içerir (DC'den bir hata döndürmekten kaçınmak için)

Tavsiye:
Sipariş vermeye veya pozisyon açmaya karar verdiğinizde kendinizi hangi kriterlere göre değerlendiriyorsunuz?
Ve şimdi kendinize şu soruyu sorun: "Neden danışmanıma tıpkı kendim gibi bir karar vermek için tüm kriterleri değerlendirmesine izin vermiyorum?"
Danışmandaki tüm kriterleri dikkate alır almaz mantıktaki hatalar anında ciddi oranda azalacaktır...

İlk önce bir kağıda yazmayı bir kural haline getirin (utanılacak bir şey yok, ama tam tersine yardımcı olur) programın bir veya başka bloğunun çalışmasının tüm mantığını,
Ve sonra kodda uygulayın.

 
artmedia70 :

1. Sipariş verme ihtiyacını kontrol ettik, evet ise, o zaman ...

2. Mevcut siparişlerin sayısını kontrol ettik, evet ise, o zaman...

3. Bir önceki siparişi (veya diğer herhangi bir gecikme kriterini) verdikten sonra geçen süre kontrol edildi, evet ise...

4. Sipariş verildi.

Genel olarak böyle bir şey...
Her ne kadar... bu öğelerin her biri, sipariş ayar parametrelerini ayarlamak için çeşitli gerekli kontrolleri de içerir (DC'den bir hata döndürmekten kaçınmak için)

Cevap için teşekkürler ama algoritmayı Rusça yazdım ama mql'de güçlü değilim, en azından açık satış/ alış emirleri ve ardından satış durdurma/alma durdurma yerleştirmeyi yasaklayan bir sinyal.

 //----------------------------------------------------------------------- проверка установленных стоп ордеров

double StopOrderUp,StopOrderDn,price,MinBuyOrder= 1000000000 ,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;

int TicketUp,TicketDn;

TimeOllOpenBuy= 0 ;TimeOllOpenSell= 0 ;

double OOL_BUYSTOP,OOL_SELSTOP;

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

{

if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true)

{ price = OrderOpenPrice();

if (Magic==OrderMagicNumber() && OrderSymbol()== Symbol ())

{

if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}

if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}

if (OrderType()==OP_BUY )

{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent ()-OrderOpenTime();

if (MinBuyOrder > price) MinBuyOrder = price;

OldBuyOrder=price;

OldBuyLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine= "ордер Bay " +OrderTicket(); ObjectDelete (NameLine); ObjectDelete (NameLine+ " з" );

ObjectCreate (NameLine, OBJ_TREND , 0 , OrderOpenTime(),price,Time[ 0 ],Bid);

ObjectSet(NameLine, OBJPROP_COLOR , LightSkyBlue );

ObjectCreate (NameLine+ " з" , OBJ_ARROW , 0 ,Time[ 0 ],Bid, 0 , 0 , 0 , 0 );

ObjectSet(NameLine, OBJPROP_STYLE , STYLE_DOT ); // Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+ " з" , OBJPROP_ARROWCODE , 3 );ObjectSet(NameLine+ " з" , OBJPROP_COLOR ,WhiteColor);}

}

if (OrderType()==OP_SELL)

{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent ()-OrderOpenTime();

if (MaxSellOrder < price) MaxSellOrder = price;

OldSellOrder=price;

OldSellLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine= "ордер Sell " +OrderTicket(); ObjectDelete (NameLine); ObjectDelete (NameLine+ " з" );

ObjectCreate (NameLine, OBJ_TREND , 0 , OrderOpenTime(),price,Time[ 0 ],Ask);

ObjectSet(NameLine, OBJPROP_COLOR , Pink );

ObjectCreate (NameLine+ " з" , OBJ_ARROW , 0 ,Time[ 0 ],Ask, 0 , 0 , 0 , 0 );

ObjectSet(NameLine, OBJPROP_STYLE , STYLE_DOT ); // Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+ " з" , OBJPROP_ARROWCODE , 3 );ObjectSet(NameLine+ " з" , OBJPROP_COLOR ,WhiteColor);}

}

}

}

}

if (MinBuyOrder== 1000000000 && MaxSellOrder== 0 && OOL_BUYSTOP!=OOL_SELSTOP) //если серия закрылась

{

DELETEORDERS();

}
 
Roman. :

Yeni bir barın açılış fiyatlarına göre Expert Advisor'ları test ediyorum (bunu yapmak için, Expert Advisor kodunda yeni bir bar oluşumu üzerindeki kontrol belirtilmelidir)
Tik başına durakları değiştirmeye çalışıyorum. Roman, değişikliğin eksik oklarına ek olarak, böyle bir değişikliğin dezavantajları nelerdir?
 

Bir gösterge eklediğimde, terminal donuyor ve aynı şeyi günlüklere yazıyor: ObjectCreate işlevi için bilinmeyen alt pencere numarası -1

tüm ObjectCreates'lerde bu göstergenin adıyla bir pencere dizinim var ( x=WindowFind(short_name); ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0,0); )

daha önce hep işe yaradı.. nedenini anlamıyorum

 
eddy :

göstergeyi yerleştirdiğimde, terminal donuyor ve günlüklere aynı şeyi yazıyor: 15:18:16 RSI EURUSD,M15: ObjectCreate işlevi için bilinmeyen alt pencere numarası -1

tüm ObjectCreates'lerde bu göstergenin adıyla bir pencere dizinim var (WindowFind(indikator_name)), örneğin ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0,0);

daha önce hep işe yaradı.. nedenini anlamıyorum

Belki de bunun nedeni, ObjectCreate'in init()'ten çağrılmasıdır. Bu durumda, gösterge adı doğru olsa bile pencere araması -1 döndürebilir.
 
öyle yapıyor..teşekkürler
 
Lanet olsun anlayamıyorum yazıyor
 2011.03 . 07 15 : 49 : 40      2011.01 . 19 10 : 50   RSI-тралинг EURUSD,H1: OrderSend error 131

Bu, Alpari'nin bitişiğinde ... yüzen bir yayılma ile ... sabit yayılmanın normal çalıştığı yerde ...

Hatayı okudum, tüm hacimleri koydum ve 1 lot ve 0.1 lot ve 0.01 lot ..... aynı hatayı yazıyor ((((((

 
Vovo4ka :
Lanet olsun anlayamıyorum yazıyor

Bu, Alpari'nin bitişiğinde ... yüzen bir yayılma ile ... sabit yayılmanın normal çalıştığı yerde ...

Hatayı okudum, tüm hacimleri koydum ve 1 lot ve 0.1 lot ve 0.01 lot ..... aynı hatayı yazıyor ((((((

Hata kodu ile kazılacak yönü öğrenebilirsiniz. Ancak kod olmadan kimse size bu hatanın nereden çıktığını söylemez.

 
Vovo4ka :
Lanet olsun anlayamıyorum yazıyor

Bu, Alpari'nin bitişiğinde ... yüzen bir yayılma ile ... sabit yayılmanın normal çalıştığı yerde ...

Hatayı okudum, tüm hacimleri koydum ve 1 lot ve 0.1 lot ve 0.01 lot ..... aynı hatayı yazıyor ((((((


kod yaz
Neden: