Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2459

 
extern double Lots 0.01;
extern int TakeProfit 20;
extern int StopLoss 20;
extern double P1 0.01;
extern int Timeframe_Moving_minutes 5;
extern bool Hand_Open_Order true;
extern double Kontrol 0.03;
int lossCount 0;
bool isReversed false;
string ordcomment "Auto Trade";
int sticketbticket;
double spread MarketInfo(Symbol(), MODE_SPREAD) * Point;
bool isBuySignal false;
bool isSellSignal false;

int init()
{
GlobalVariableSet("Lots"Lots);
return(
0);
}
Ошибок при компиляции не выдает, но ограничения не срабатываю. Открываются несколько сделок в одном направлении. Помогите пожалуйста исправит код.
int start()
{
// ... (остальной код)

if (!Hand_Open_Order)
{
if (
iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE0) < iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE1)&&iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE1) > iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE2))
{
isSellSignal true;
isBuySignal false;
}
else if (
iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE0) > iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE1)&&iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE1) < iMA(NULLTimeframe_Moving_minutes50MODE_SMAPRICE_CLOSE2))
{
isBuySignal true;
isSellSignal false;
}
else
{
isBuySignal false;
isSellSignal false;
}

if (
lossCount 4)
{
if (
isSellSignal)
{
Print(
"Нет открытых ордеров - открываем на продажу");
sticket OrderSend(Symbol(), OP_SELLLotsBid0Bid StopLoss PointBid Point TakeProfitordcomment00Yellow);
if (
sticket == -1)
{
Print(
"Не могу открыть ордер: ошибка #"GetLastError());
}
else
{
if (
OrderSelect(0SELECT_BY_POSMODE_TRADES))
{
GlobalVariableSet("Lots"OrderLots());
bticket OrderSend(Symbol(), OP_BUYSTOPopenlots(), OrderStopLoss(), 0OrderStopLoss() + * (OrderOpenPrice() - OrderStopLoss()), OrderStopLoss() - * (OrderOpenPrice() - OrderStopLoss()), ordcomment00Magenta);
if (
bticket == -1)
{
Print(
"Не могу открыть отложенный ордер: ошибка #"GetLastError());
}
}
}
}
else if (
isBuySignal)
{
Print(
"Нет открытых ордеров - открываем на покупку");
bticket OrderSend(Symbol(), OP_BUYLotsAsk0Ask StopLoss PointAsk TakeProfit Pointordcomment00Yellow);
if (
bticket == -1)
{
Print(
"Не могу открыть ордер: ошибка #"GetLastError());
}
else
{
if (
OrderSelect(0SELECT_BY_POSMODE_TRADES))
{
GlobalVariableSet("Lots"OrderLots());
sticket OrderSend(Symbol(), OP_SELLSTOPopenlots(), OrderStopLoss(), 0OrderStopLoss() - * (OrderStopLoss() - OrderOpenPrice()), OrderStopLoss() + * (OrderStopLoss() - OrderOpenPrice()), ordcomment00Magenta);
if (
sticket == -1)
{
Print(
"Не могу открыть отложенный ордер: ошибка #"GetLastError());
}
}
}
}
}
else
{
if (
isSellSignal)
{
Print(
"Открываем ордер на продажу в том же направлении, что и до этого");
if (
isReversed)
{
sticket OrderSend(Symbol(), OP_SELLLotsBid0Bid StopLoss PointBid Point TakeProfitordcomment00Yellow);
}
else
{
bticket OrderSend(Symbol(), OP_BUYLotsAsk0Ask StopLoss PointAsk TakeProfit Pointordcomment00Yellow);
}
}
else if (
isBuySignal)
{
Print(
"Открываем ордер на покупку в том же направлении, что и до этого");
if (
isReversed)
{
bticket OrderSend(Symbol(), OP_BUYLotsAsk0Ask StopLoss PointAsk TakeProfit Pointordcomment00Yellow);
}
else
{
sticket OrderSend(Symbol(), OP_SELLLotsBid0Bid StopLoss PointBid Point TakeProfitordcomment00Yellow);
}
}
if (
sticket == -|| bticket == -1)
{
Print(
"Не могу открыть ордер: ошибка #"GetLastError());
}
else
{
if (
OrderSelect(0SELECT_BY_POSMODE_TRADES))
{
GlobalVariableSet("Lots"OrderLots());
}
}
}
}

// ... (остальной код)

if (OrderSelect(0SELECT_BY_POSMODE_TRADES))
{
if (
OrderProfit() >= 0.0)
{
lossCount 0;
isReversed false;
}
else
{
lossCount++;
isReversed true;
}
}

// ... (остальной код)

return(0);
}

double openlots()
{
return(
Lots NormalizeDouble(GlobalVariableGet("Lots"), 3));
}

int deinit()
{
Comment("");
return(
0);
}
 

darirunu1 #:

....

примерно так выглядит мат на MQL :-)

 
darirunu1 #:
extern double Lots 0.01;
extern int TakeProfit 20;
...
{
Comment("");
return(
0);
}

 

 
Vitaly Muzichenko #:

 

Извините это что Вы написали?

 
darirunu1 #:

Извините это что Вы написали?

Это чтобы вы научились причёсывать код

А вот ещё чтобы вы научились вставлять код


 

Добрый вечер!

Помогите, пожалуйста!

Впервые столкнулся с таким казусом.

Вносил изменения в индикаторы. Откомпилировал. Закрыл редактор. Закрыл терминал.

Открыл терминал.

В терминале открываю Навигатор, кликаю по папке «МА» (moving average) - она открывается. А там всего несколько папок и пару индикаторов. А куда делись все остальные индикаторы? А у меня их было, наверное, свыше сотни. Неприятно!

Открываю каталог данных – а там в папке «МА» все индикаторы в наличии, все на месте.

Опять закрыл терминал – открыл.

Ничего не изменилось.

Вопрос – почему индикаторы не отражаются в навигаторе? Хотя в каталоге данных они присутствуют.

Спасибо!

Файлы:
 

Добрый день!

И второй вопрос – почему в каталоге данных папки отображаются как папки, а в навигаторе, эти же папки, отображаются как значок индикатора?

См. в аттаче

Может быть здесь и кроется причина непонятки в моем посте выше

Спасибо!

Файлы:
 
Kedrov # :

Добрый день!

И второй вопрос – почему в каталоге данных папки отображаются как папки, а в навигаторе, эти же папки, отображаются как значок индикатора?

См. в аттаче

Может быть здесь и кроется причина непонятки в моем посте выше

Спасибо!

Точно не в этом проблема.

 
Alexey Viktorov #:

Точно не в этом проблема.

Хорошо, что есть такая уверенность.

Так в чем же проблема тогда?

Спасибо!

 
Kedrov #:

Хорошо, что есть такая уверенность.

Так в чем же проблема тогда?

Спасибо!

Уверенность потому, что это всего лишь картинка. Хотите поставьте вот такую