Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 61 1...545556575859606162636465666768...1953 Nuovo commento RichLux 2017.01.08 20:54 #601 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);}ma ha bisogno diif(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);} Any questions from newcomers Come codificare? Questions from Beginners MQL4 Artyom Trishkin 2017.01.08 21:05 #602 Ibragim Dzhanaev: Non ha aiutato (double tp,sl,OrderBuy=0,OrderSell=0;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); } }//+------------------------------------------------------------------+Cosa vuoi con un codice del genere?Cosa, e cos'è che non ha funzionato? [Eliminato] 2017.01.08 21:08 #603 RichLux: if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70){tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,sl,sl,tp,NULL,MagicNumber,0,clrBlue)}if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30){tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,sl,sl,tp,NULL,MagicNumber,0,clrRed);}ma hanno bisogno diif(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);}Ad ogni tick si apre (double tp,sl,OrderBuy=0,OrderSell=0;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); } }//+------------------------------------------------------------------+ Any questions from newcomers [Qualsiasi domanda da principiante, Domande dai principianti MQL4 [Eliminato] 2017.01.08 21:09 #604 Artyom Trishkin: Cosa volete da questo codice?Cosa, e cosa non ha funzionato lì?Cosa c'è di sbagliato nel codice?È necessario che non si apra ad ogni spunta. Artyom Trishkin 2017.01.08 21:13 #605 Ibragim Dzhanaev: Cosa c'è di sbagliato nel codice?Non è così che funziona. Perché cercare il ciclo di posizione se non fa nulla e non restituisce nulla come risultato?Perché controllate le variabili con valori zero per meno di uno e vi aspettate che non si apra ad ogni tick?Ci sono un sacco di sciocchezze per essere onesti... [Qualsiasi domanda da principiante, Dividere le posizioni aperte La verità sui consiglieri! Mickey Moose 2017.01.08 21:14 #606 Ho lo stesso problema, nel tester si apre su ogni tick anche se non dovrebbeHo messo una stampella per il numero minimo di ordini per funzionare, ma è una patch, niente di più Qualsiasi domanda da principiante, FORTI. Problemi di applicazione Elaborazione OnTradeTransaction Artyom Trishkin 2017.01.08 21:16 #607 trader781: Ho lo stesso problema, nel tester si apre su ogni tick anche se non dovrebbeHo messo una stampella per il numero minimo di ordini per funzionare, ma è una patch, niente di più Se contate correttamente il numero di posizioni aperte, allora non avete bisogno di stampelle. [Eliminato] 2017.01.08 21:18 #608 Artyom Trishkin: È tutto sbagliato. Perché cercare il ciclo di posizione se non fa nulla e non restituisce nulla come risultato?Perché controllate le variabili con valori zero per meno di uno e vi aspettate che non si apra ad ogni tick?E ci sono un sacco di sciocchezze per essere onesti...Sistematelo nel modo giusto. Se l'avessi fatto, l'avrei fatto. Mickey Moose 2017.01.08 21:20 #609 Artyom Trishkin: Se contate correttamente il numero di posizioni aperte, non avete bisogno di stampelle.Non dovrebbero essere limitati in alcun modoIn breve, la condizione è la seguentevoid OnTick() { if(OrdersTotal()==0) //+-------------если количество ордеров равно 0 { 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(); } Non devo ignorare il passo aperto, che è di 200 cinque o tre cifre. Any questions from newcomers [ARCHIVIO] Qualsiasi domanda da Qualsiasi domanda da principiante, [Eliminato] 2017.01.08 21:25 #610 Fatto questo, ora non si apre ad ogni tick, ma lascia entrare i segnali...double tp,sl,OrderBuy=0,OrderSell=0;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); } }//+------------------------------------------------------------------+ Any questions from newcomers Domande dai principianti MQL4 [Scriverò qualsiasi esperto o 1...545556575859606162636465666768...1953 Nuovo commento
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);
}
ma ha bisogno di
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);
}
Non ha aiutato (
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);
}
}
//+------------------------------------------------------------------+
Cosa vuoi con un codice del genere?
Cosa, e cos'è che non ha funzionato?
if(OrderBuy<1&& rsi>Urov_70 && rsi1<Urov_70)
{
tiket=OrderSend(_Symbol,OP_BUY,Lot,Ask,sl,sl,tp,NULL,MagicNumber,0,clrBlue)
}
if(OrderSell<1&& rsi<Urov_30 && rsi1>Urov_30)
{
tiket=OrderSend(_Symbol,OP_SELL,Lot,Bid,sl,sl,tp,NULL,MagicNumber,0,clrRed);
}
ma hanno bisogno di
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);
}
Ad ogni tick si apre (
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);
}
}
//+------------------------------------------------------------------+
Cosa volete da questo codice?
Cosa, e cosa non ha funzionato lì?
Cosa c'è di sbagliato nel codice?
È necessario che non si apra ad ogni spunta.
Cosa c'è di sbagliato nel codice?
Non è così che funziona.
Perché cercare il ciclo di posizione se non fa nulla e non restituisce nulla come risultato?
Perché controllate le variabili con valori zero per meno di uno e vi aspettate che non si apra ad ogni tick?
Ci sono un sacco di sciocchezze per essere onesti...
Ho lo stesso problema, nel tester si apre su ogni tick anche se non dovrebbe
Ho messo una stampella per il numero minimo di ordini per funzionare, ma è una patch, niente di più
Ho lo stesso problema, nel tester si apre su ogni tick anche se non dovrebbe
Ho messo una stampella per il numero minimo di ordini per funzionare, ma è una patch, niente di più
È tutto sbagliato.
Perché cercare il ciclo di posizione se non fa nulla e non restituisce nulla come risultato?
Perché controllate le variabili con valori zero per meno di uno e vi aspettate che non si apra ad ogni tick?
E ci sono un sacco di sciocchezze per essere onesti...
Sistematelo nel modo giusto.
Se l'avessi fatto, l'avrei fatto.
Se contate correttamente il numero di posizioni aperte, non avete bisogno di stampelle.
Non dovrebbero essere limitati in alcun modo
In breve, la condizione è la seguente
void OnTick()
{
if(OrdersTotal()==0) //+-------------если количество ордеров равно 0{
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();
}
Fatto questo, ora non si apre ad ogni tick, ma lascia entrare i segnali...
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);
}
}
//+------------------------------------------------------------------+