Спасибо. А можно через функцию оформить?
Можешь пример скинуть?
Вот как мне сюда это записать?
Можешь пример скинуть?
Вот как мне сюда это записать?
Код:
//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
//------------------------------------------------------------------
extern double StopLoss = 5;
extern double TakeProfit = 5;
extern int ma1per =5;
extern int ma2per =20;
extern int rper = 10;
extern int rur = 50;
extern int ManualMagic = 28282828;
extern int Slippage = 5;
extern double Lots = 0.1;
bool dummyResult;
string s_symbol;
int MAGIC;
int digit;
static int prevtime = 0;
double point = 1;
//
int init()
{
s_symbol = Symbol();
digit = MarketInfo(s_symbol,MODE_DIGITS);
if (digit==2 || digit==4) point = 1;
if (digit==3 || digit==5) point = 10;
if (digit==6) point = 100;
MAGIC = ManualMagic;
return(0);
}
//
int deinit() { Comment(""); return(0); }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double rsi1 = iRSI(NULL,0,21,PRICE_CLOSE,1);
if (!ExistPositions())
{
if (BAISIGtf1())
{
OpenBuy();
return(0);
}
if( rsi1>100 )
{
OpenSell();
return(0);
}
}
return (0);
}
//===================================================================================
bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == s_symbol && OrderMagicNumber() == MAGIC) {
return(true);
}
}
}
return(false);
}
//
bool BAISIGtf1()
{
double ma1 = iMA (NULL,0,ma1per,0,MODE_EMA,PRICE_CLOSE,1);
double ma2 = iMA (NULL,0,ma2per,0,MODE_EMA,PRICE_CLOSE,1);
double rsi1 = iRSI(NULL,0,rper,PRICE_CLOSE,1);
double rsi2 = iRSI(NULL,0,rper,PRICE_CLOSE,2);
{
if( ( rsi2<rur && rsi1>rur ) ) return(true);
}
return(false);
}
void OpenBuy()
{
double lbStop = 0; if (StopLoss>0) lbStop = NormalizeDouble(Ask-StopLoss *Point*point,digit);
double lbTake = 0; if (TakeProfit>0) lbTake = NormalizeDouble(Ask+TakeProfit*Point*point,digit);
dummyResult = OrderSend(s_symbol,OP_BUY,0.01,NormalizeDouble(Ask,Digits),Slippage,lbStop,lbTake,1,MAGIC,0);
}
void OpenSell()
{
double lsStop = 0; if (StopLoss>0) lsStop = NormalizeDouble(Bid+StopLoss *Point*point,digit);
double lsTake = 0; if (TakeProfit>0) lsTake = NormalizeDouble(Bid-TakeProfit*Point*point,digit);
dummyResult = OrderSend(s_symbol,OP_SELL,0.01,NormalizeDouble(Bid,Digits),Slippage,lsStop,lsTake,1,MAGIC,0);
}
Последнее редактирование: