что не так? .. почему он не торгует? ))) вообще мне нужен скрипт который будет покупать каждые три тика от начала его запуска . закрывать все покупки если цена упала на 5 тиков .. вообщем пишите мне договоримся или кто поможет
double BuyPrice = 0.0; // Цена покупки
int TickCounter = 0; // Счетчик тиков
void OnStart()
{
TickCounter = 0; // Сбрасываем счетчик тиков
double price = MarketInfo("EURUSD", MODE_BID); // Текущая цена Bid
double lotSize = 0.01; // Размер лота
double stopLoss = price - 50 * Point; // Уровень Stop Loss (50 пунктов от текущей цены)
double takeProfit = price + 100 * Point; // Уровень Take Profit (100 пунктов от текущей цены)
int ticket = OrderSend("EURUSD", OP_BUY, lotSize, price, 0, stopLoss, takeProfit, "Buy", 0, 0, Green);
if(ticket > 0) // Если сделка успешно открыта
{
BuyPrice = price; // Сохраняем цену покупки
TickCounter = 0; // Сбрасываем счетчик тиков
}
}
void OnTick()
{
TickCounter++;
double price = MarketInfo("EURUSD", MODE_BID); // Текущая цена Bid
if(price > BuyPrice && TickCounter == 3) // Если цена выросла на три тика
{
if(BuyPrice == 0.0) // Если позиция еще не открыта
{
double lotSize = 0.01; // Размер лота
double stopLoss = price - 50 * Point; // Уровень Stop Loss (50 пунктов от текущей цены)
double takeProfit = price + 100 * Point; // Уровень Take Profit (100 пунктов от текущей цены)
int ticket = OrderSend("EURUSD", OP_BUY, lotSize, price, 0, stopLoss, takeProfit, "Buy", 0, 0, Green);
if(ticket > 0) // Если сделка успешно открыта
{
BuyPrice = price; // Сохраняем цену покупки
TickCounter = 0; // Сбрасываем счетчик тиков
}
}
}
if(price < (BuyPrice - 5*Point)) // Если цена упала на пять тиков
{
if(BuyPrice > 0.0) // Если позиция открыта
{
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == "EURUSD" && OrderType() <= OP_SELL)
{
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 0, Red);
}
}
}
BuyPrice = 0.0; // Сбрасываем цену покупки
TickCounter = 0; // Сбрасываем счетчик тиков
}
}
}