MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 61
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );
}
if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );
}
ama ihtiyacın var
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage, slBuy ,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage, slSell , tpSell , NULL ,MagicNumber, 0 , clrRed );
}
Yardım etmedi (
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==MagicNumber)
{
if ( OrderType ()== OP_BUY ){}
if ( OrderType ()== OP_SELL ){}
}
}
double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;
tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );
tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );
}
if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );
}
}
//+------------------------------------------------------------------+
Bu kodla ne istiyorsunuz?
Ne ve orada size ne yardımcı olmadı?
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrBlue );
}
if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,sl,tp, NULL ,MagicNumber, 0 , clrRed );
}
ama ihtiyacın var
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage, slBuy ,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
if (SiparişSat< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage, slSell , tpSell , NULL ,MagicNumber, 0 , clrRed );
}
Her kene açılır (
double slSell,slBuy,tpSell,tpBuy;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
if ( OrderSymbol ()== _Symbol && OrderMagicNumber ()==MagicNumber)
{
if ( OrderType ()== OP_BUY ){}
if ( OrderType ()== OP_SELL ){}
}
}
double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;
tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );
tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,slBuy,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,slSell,tpSell, NULL ,MagicNumber, 0 , clrRed );
}
}
//+------------------------------------------------------------------+
Bu kodla ne istiyorsunuz?
Ne ve orada size ne yardımcı olmadı?
Kodun nesi var?
Her tikte açılmaması gereklidir.
Kodun nesi var?
Evet, hepsi yanlış
Sonuç olarak hiçbir şey yapmıyorsa ve geri dönmüyorsa, konum arama döngüsüne ne gerek var?
Neden birden az sıfır değerine sahip değişkenleri kontrol ediyorsunuz ve her onayda açılmamasını bekliyorsunuz?
Evet ve dürüst olmak gerekirse bir sürü saçmalık ...
Ben de aynı sorunu yaşıyorum, test cihazında her tikte açılıyor, ancak olmaması gerekiyor
Çalışmak için minimum sipariş sayısına bir koltuk değneği koydum, ama bu bir yama, başka bir şey değil
Ben de aynı sorunu yaşıyorum, test cihazında her tikte açılıyor, ancak olmaması gerekiyor
Çalışmak için minimum sipariş sayısına bir koltuk değneği koydum, ama bu bir yama, başka bir şey değil
Evet, hepsi yanlış
Sonuç olarak hiçbir şey yapmıyorsa ve geri dönmüyorsa, konum arama döngüsüne ne gerek var?
Neden birden az sıfır değerine sahip değişkenleri kontrol ediyorsunuz ve her onayda açılmamasını bekliyorsunuz?
Evet ve dürüst olmak gerekirse bir sürü saçmalık ...
Gerektiği gibi gönderin.
Bilseydim, yapardım.
Açık pozisyonların sayısını doğru bir şekilde sayarsanız, koltuk değneğine gerek yoktur.
Bunlar kesinlikle sınırlandırılmamalıdır.
kısa durumda
void OnTick()
{
{
if (( MathAbs (ma2-ma4)> 100 * _Point )
&& ( MathAbs ( Bid -ma3)> 100 * Point ())
&& (ma31>ma32>ma33)) //+-----покупка по 6+50
{
ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure ); //+------отправка 1 ордера
}
if (( Bid + 1000 * Point )>ma3 && ( Bid >ma1) && ( Bid >ma2)) //+-------------условие продажи
{
ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure ); //+-----отправка 1 ордера
}
if (ticket== 0 )
{
return ;
}
}
//+---------------------------------------------------------если уже есть
if (FindLastOType()== OP_BUY )
{
if ( Ask <=FindLastOrderOpenPrice()-Step* Point ()) //+------------если ордер в минус
{
ticket= OrderSend ( Symbol (), OP_BUY ,(FindLastLot()*Martin), Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure );
}
else
if ( Ask >=FindLastOrderOpenPrice()+Step* Point ()) //+------------если ордер в плюс
{
ticket= OrderSend ( Symbol (), OP_BUY ,(FindLastLot()*Martin), Ask , 50 , 0 , 0 , "" ,Magic, 0 , clrAzure );
}
}
if (FindLastOType()== OP_SELL )
{
if ( Bid >=FindLastOrderOpenPrice()+Step* Point ()) //+------------если ордер в минус
{
ticket= OrderSend ( Symbol (), OP_SELL ,(FindLastLot()*Martin), Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrLightGray );
}
else
if ( Bid <=FindLastOrderOpenPrice()-Step* Point ()) //+------------если ордер в плюс
{
ticket= OrderSend ( Symbol (), OP_SELL ,(FindLastLot()*Martin), Bid , 50 , 0 , 0 , "" ,Magic, 0 , clrLightGray );
}
}
Trailingall();
}
Bunu yaptım, şimdi her tıklamada açılmıyor, ancak giriş sinyallerini atlıyor...
double slSell,slBuy,tpSell,tpBuy,TotalBiu,TotalSell;
int tiket;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick ()
{
for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) //Цикл по всем ордерам
{
if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderSymbol ()== Symbol () && OrderMagicNumber ()==MagicNumber) //Выбрали ордер
{
if ( OrderType ()== OP_BUY )
{
TotalBiu++; //Кол. покупок
}
if ( OrderType ()== OP_SELL )
{
TotalSell++; //Кол. продаж
}
}
}
double rsi= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 0 );
double rsi1= iRSI ( _Symbol , 0 ,RSIperiod, PRICE_CLOSE , 1 );
//+------------------------------------------------------------------+
double StopLossLevel;
double TakeProfitLevel;
if (StopLoss> 0 ) StopLossLevel= Bid -StopLoss* Point ; else StopLossLevel= 0.0 ;
if (TakeProfit> 0 ) TakeProfitLevel= Ask +TakeProfit* Point ; else TakeProfitLevel= 0.0 ;
tpBuy= NormalizeDouble ( Ask +TakeProfit* _Point , _Digits );
slBuy= NormalizeDouble ( Bid -StopLoss* _Point , _Digits );
tpSell= NormalizeDouble ( Bid -TakeProfit* _Point , _Digits );
slSell= NormalizeDouble ( Ask +StopLoss* _Point , _Digits );
///---
if (TotalBiu== 0 )
if (OrderBuy< 1 && rsi>Urov_70 && rsi1<Urov_70)
{
tiket= OrderSend ( _Symbol , OP_BUY ,Lot, Ask ,slippage,slBuy,tpBuy, NULL ,MagicNumber, 0 , clrBlue );
}
if (TotalSell== 0 )
if (OrderSell< 1 && rsi<Urov_30 && rsi1>Urov_30)
{
tiket= OrderSend ( _Symbol , OP_SELL ,Lot, Bid ,slippage,slSell,tpSell, NULL ,MagicNumber, 0 , clrRed );
}
}
//+------------------------------------------------------------------+