Aşağı yukarı böyle. Ve diğer fiyatlarla açılış mümkünse. Başka mekanizmalar kullanmanız gerekir.
Bir sembol ve zaman çerçevesi için yalnızca bir pozisyon açılabilirse, açık pozisyonların sayısını kontrol etmeniz gerekir.
int CountOrder [6];// Функция формирует массив с количеством открытых позиций по каждому виду ордеров.//===============================================================================int Order_Count_Calculate (string _Symbol ,int _Magic ,int _OP =-1){ArrayInitialize( Order_Count ,0);for(int i =OrdersTotal()-1; i >=0; i --){if(!OrderSelect( i , SELECT_BY_POS , MODE_TRADES ))continue;if(OrderSymbol()!= _Symbol )continue;if(OrderMagicNumber()!= _Magic )continue;
Order_Count [OrderType()]++;}if( _OP >=0)return( Order_Count [ _OP ]);return(0);}
Şimdi istenilen dizi elemanının değerlerini kontrol ederek bu türden kaç tane pozisyonun açık olduğunu biliyoruz.
(Gecikme ayarlamak için kurulum fiyatının teklif akışında olması kesinlikle gerekli değildir.
Mevcut fiyattan dans edebilir veya herhangi bir fiyatı alabilirsiniz, böylece sadece bu DC'de izin verilen durma seviyesi gözlemlenir, MEVCUT FİYATTAN GECİKMEYİ AYARLAMA FİYATIna kadar)
total =OrdersTotal();short=TRUE;long=TRUE;for(int cnt =0; cnt < total ; cnt ++){OrderSelect( cnt , SELECT_BY_POS , MODE_TRADES );if(OrderSymbol()==Symbol()&&OrderMagicNumber()== MagicNumber ){if(OrderType()==OP_SELL)short=FALSE;if(OrderType()==OP_BUY)long=FALSE;}}
Şimdi koda şöyle yazdım, bu diziyle çözemiyorum, bu barda zaten bir sipariş olduğunu ve kapandığını nasıl belirleyecek ve yeni bir bar bekleyeceğiz?
nasıl açıklanır, muhtemelen kendimi doğru ifade edemedim veya muhtemelen işlevi anlamadım ....
1) sıfır çubuğunda bir emir açıldığını ve kapandığını varsayalım, o zaman bu çubukta bir emir açmıyoruz, açılma sinyali olsa bile, bu çubukta zaten bir anlaşma olduğu ve kapandığı için, biz bir sonraki bar için bekliyorum.
Her çubukta sadece bir ticarete izin verilir, bu çubukta bir ticaret varsa, sipariş açmıyoruz, nasıl yapılır ???
İnsanlara yardım et .....))) Zaten bir çatım var \\\\\\\\>>>>
Şimdi koda şöyle yazdım, bu diziyle çözemiyorum, bu barda zaten bir sipariş olduğunu ve kapandığını ve yeni bir bar bekleyeceğimizi nasıl anlayacak?
nasıl açıklanır, muhtemelen kendimi doğru ifade edemedim veya muhtemelen işlevi anlamadım ....
1) sıfır çubuğunda bir emir açıldığını ve kapandığını varsayalım, o zaman bu çubukta bir emir açmıyoruz, açılma sinyali olsa bile, bu çubukta zaten bir anlaşma olduğu ve kapandığı için, biz bir sonraki bar için bekliyorum.
Her çubukta sadece bir ticarete izin verilir, bu çubukta bir ticaret varsa, sipariş açmıyoruz, nasıl yapılır ???
İnsanlara yardım et .....))) Zaten bir çatım var \\\\\\\\>>>>
Uzman Danışman yazmaya çalışıyorum... Daha yeni öğrenmeye başlıyorum... test cihazında 4062 hatası görünüyor ...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Bir dize parametresi bekleniyor)
Nereden editleyeceğimi bulamıyorum. Belki yerelden biri koda bakar? :)
externdouble Lots =0.9;//лотexterndouble StopLoss =70;externdouble DecreaseFactor =80;externdouble MaximumRisk =0.014;externdouble MaximumLots =100;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double GetSizeLot ()//оптимизация лотов{double Lot = Lots ;int cycle ;int prof =0;int orders = HistoryTotal ();// history orders totalint losses =0;// number of losses orders without a breakint vinn =0;int i = orders ;//---- select lot size
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);//----if(AccountFreeMargin()<=14)
DecreaseFactor =14;//----if(AccountFreeMargin()>10000)
DecreaseFactor =60;//----if( DecreaseFactor >0&& orders > DecreaseFactor ){//----for( cycle =1; cycle < DecreaseFactor ; cycle ++){
i --;//----if(OrderSelect( i , SELECT_BY_TICKET , MODE_HISTORY )==false){Print("Error in history!");break;}//----if(OrderCloseTime()>0){
prof = prof +OrderProfit();if(OrderProfit()<=0)
losses ++;else
vinn ++;}}if( prof <=0&& losses > vinn )
Lot =0.1;if( prof <=0&& vinn > losses )
Lot = Lot -(0.1* losses );if( prof >0&& losses > vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /4,0.1));}if( prof >0&& losses <= vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /2,0.1));}}if(AccountFreeMargin()<300|| Lot <0.1)
Lot =0.1;if( Lot *1275>=AccountFreeMargin())
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);if( MaximumLots !=0&& Lot > MaximumLots )
Lot = MaximumLots ;if( DecreaseFactor > orders )
Lot = Lots ;return( Lot );}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ int start (){double glav1 , sig1 , glav2 , sig2 ;int cnt , ticket , total ;
glav1 =iCustom(NULL,0,"i_Trend",0,1);
sig1 =iCustom(NULL,0,"i_Trend",1,1);
glav2 =iCustom(NULL,0,"i_Trend",0,2);
sig2 =iCustom(NULL,0,"i_Trend",1,2);
total =OrdersTotal();// проверяем есть ли открытые позицииif( total <1){if(AccountFreeMargin()<(500* Lots ))// проверяем денежки на счету{Print("Денег почти нет, осталось всего: ",AccountFreeMargin());return(0);}}// проверяем открытие позиции на покупкуif(( glav2 < sig2 )&&( glav1 > sig1 )){OrderSend(Symbol(),OP_BUY, GetSizeLot (),Ask,3,Ask- StopLoss *Point,"AlanMod expert",16384,0,Green);return(0);}// проверяем возможность открытия на продажуif(( glav2 > sig2 )&&( glav1 < sig1 )){OrderSend(Symbol(),OP_SELL, GetSizeLot (),Bid,3,Bid+ StopLoss *Point,"AlanMod expert",16384,0,Red);return(0);}for( cnt =0; cnt < total ; cnt ++){OrderSelect( cnt , SELECT_BY_POS , MODE_TRADES );if(OrderType()<=OP_SELL&&// проверка открытой позиции OrderSymbol()==Symbol())// проверка с нашего ли она графика{if(OrderType()==OP_BUY)// если открыта позиция на покупку{if( glav1 < sig1 )// проверяем закрывать или нет?{OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);// закрылиreturn(0);// сваливаем}}else// если эта позиция на продажу{if( glav1 > sig1 )//проверяем закрывать иль нет?{OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);// закрылиreturn(0);// сваливаем}}}}}
Bir Uzman Danışman yazmaya çalışıyorum... öğrenmeye yeni başlıyorum... test cihazında 4062 hatası görünüyor...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Bir dize türü parametresi bekleniyor)
Nereden editleyeceğimi bulamadım. Belki yerelden biri koda bakar? :)
1) double NormalizeDouble (çift değer, int basamak) ve sahip olduğunuz (vinn/2, 0.1)
hangi sayfa bulamadım
Onu da bulamadım. Bu yüzden önemli değil.
Açılış fiyatlarında çalışıyorsanız, yeni bar açılışlarını kontrol etmeniz yeterlidir.
Aşağı yukarı böyle. Ve diğer fiyatlarla açılış mümkünse. Başka mekanizmalar kullanmanız gerekir.
Bir sembol ve zaman çerçevesi için yalnızca bir pozisyon açılabilirse, açık pozisyonların sayısını kontrol etmeniz gerekir.
Şimdi istenilen dizi elemanının değerlerini kontrol ederek bu türden kaç tane pozisyonun açık olduğunu biliyoruz.
Örneğin (satın alma durağı ayarlama örneği):
(Gecikme ayarlamak için kurulum fiyatının teklif akışında olması kesinlikle gerekli değildir.
Mevcut fiyattan dans edebilir veya herhangi bir fiyatı alabilirsiniz, böylece sadece bu DC'de izin verilen durma seviyesi gözlemlenir, MEVCUT FİYATTAN GECİKMEYİ AYARLAMA FİYATIna kadar)
( 'EURUSD - Eğilimler, Tahminler ve Etkiler' )
Yerine
çift fiyatAL=....... ....
formülünüzü girin
EH ... özellikle ekli kod için çok teşekkürler! Sadece doktorun emrettiği şey! ))))
Onu da bulamadım. Bu yüzden önemli değil.
Açılış fiyatlarında çalışıyorsanız, yeni bar açılışlarını kontrol etmeniz yeterlidir.
Aşağı yukarı böyle. Ve diğer fiyatlarla açılış mümkünse. Başka mekanizmalar kullanmanız gerekir.
Bir sembol ve zaman dilimi için yalnızca bir pozisyon açılabilirse, açık pozisyonların sayısını kontrol etmeniz gerekir.
Şimdi istenilen dizi elemanının değerlerini kontrol ederek bu türden kaç tane pozisyonun açık olduğunu biliyoruz.
Şimdi koda şöyle yazdım, bu diziyle çözemiyorum, bu barda zaten bir sipariş olduğunu ve kapandığını nasıl belirleyecek ve yeni bir bar bekleyeceğiz?
nasıl açıklanır, muhtemelen kendimi doğru ifade edemedim veya muhtemelen işlevi anlamadım ....
1) sıfır çubuğunda bir emir açıldığını ve kapandığını varsayalım, o zaman bu çubukta bir emir açmıyoruz, açılma sinyali olsa bile, bu çubukta zaten bir anlaşma olduğu ve kapandığı için, biz bir sonraki bar için bekliyorum.
Her çubukta sadece bir ticarete izin verilir, bu çubukta bir ticaret varsa, sipariş açmıyoruz, nasıl yapılır ???
İnsanlara yardım et .....))) Zaten bir çatım var \\\\\\\\>>>>
Şimdi koda şöyle yazdım, bu diziyle çözemiyorum, bu barda zaten bir sipariş olduğunu ve kapandığını ve yeni bir bar bekleyeceğimizi nasıl anlayacak?
nasıl açıklanır, muhtemelen kendimi doğru ifade edemedim veya muhtemelen işlevi anlamadım ....
1) sıfır çubuğunda bir emir açıldığını ve kapandığını varsayalım, o zaman bu çubukta bir emir açmıyoruz, açılma sinyali olsa bile, bu çubukta zaten bir anlaşma olduğu ve kapandığı için, biz bir sonraki bar için bekliyorum.
Her çubukta sadece bir ticarete izin verilir, bu çubukta bir ticaret varsa, sipariş açmıyoruz, nasıl yapılır ???
İnsanlara yardım et .....))) Zaten bir çatım var \\\\\\\\>>>>
Igor KIM'in 'KimIV'ten Faydalı özellikler' başlığına bakın . Fonksiyonlardan biri sorunuza cevap verecektir.
Uzman Danışman yazmaya çalışıyorum... Daha yeni öğrenmeye başlıyorum... test cihazında 4062 hatası görünüyor ...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Bir dize parametresi bekleniyor)
Nereden editleyeceğimi bulamıyorum. Belki yerelden biri koda bakar? :)
Bir Uzman Danışman yazmaya çalışıyorum... öğrenmeye yeni başlıyorum... test cihazında 4062 hatası görünüyor...(ERR_STRING_PARAMETER_EXPECTED - 4062 - Bir dize türü parametresi bekleniyor)
Nereden editleyeceğimi bulamadım. Belki yerelden biri koda bakar? :)
1) double NormalizeDouble (çift değer, int basamak) ve sahip olduğunuz (vinn/2, 0.1)
2) OrderSend ( Symbol ( ) , OP_BUY , GetSizeLot ( ) , Ask , 3 , Ask - StopLoss * Point , EKSİK PARAMETRE take_profit, "AlanMod uzmanı" , 16384 , 0 , Yeşil ) ;
özel göstergelerdeki arabelleklere nasıl ad atayacağımı söyle?