Скачать MetaTrader 5

function must return the value????

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MADALEX13
39
MADALEX13  

function must return the value????

Привет всем как это исправить я просто не шарю в програмировании но когда компилирую выдает не как ошибку а как предупреждение вот код, здесь ссылаеться на 103 строку:

//+------------------------------------------------------------------+

//| bvnopen.mq4 |

//| Vitaliy N. Borinskiy |

//| http://junkabyss.com |

//| Version 0.39 |

//| License GPL v.2 |

//+------------------------------------------------------------------+

#property copyright "Vitaliy N. Borinskiy"

#property link "http://junkabyss.com"

#property show_inputs

#include <stderror.mqh>

#include <stdlib.mqh>


// Прекомпилированные входные значения


// Стартовый размер лота

extern double StartLot = 1;

// Количество ордеров

extern int OrdersNumber = 1;

// Уровень Stop Loss

extern int StopLoss = 0;

// Уровень Take Profit

extern int TakeProfit = 0;

// Расстоя

extern int Pips = 0;

// Уровень Stop Loss для

extern bool StopForEach = true;

// Коэфициент умножения

extern double Magnifier = 1;

// Покупка или продажа: 1 - покупка, -1 - продажа, по умолчанию 0 - определя

// Зависит от DnDLevel, если он 0 или 1, то покупка при бросании выше графика, если -1, то - ниже (подробнее ниже).

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

extern int BuySell = 0;

// Комментарий

extern string UserComment = "";


// Следующие параметры не вынесены во внешние, так как переключать их каждый раз бессмысленно,

// но их можно поменя


// Определя

// При значении по умолчанию 0 - никакие уровни не устанавливаются

// Если график брошен выше цены, то происходит покупка, ниже - продажа.

// При значении 1 выставля

// При значении -1 выставля

// При этом направление определя

int DnDLevel = 0;

// Допустимое проскальзывание.

int Slippage = 2;

// Количество попыток, в случае ошибки.

int MaxTries = 3;

// Время

int SleepTime = 200;

// Звук вкл./выкл.

bool Sound = true;

// "Волшебный номер", иногда может быть полезно для

int Magic = NULL;


// Дальше ничего меня



//+------------------------------------------------------------------+

//| script program start function |

//+------------------------------------------------------------------+

int start() {

double OpenPrice, Lots, SL, TP, SLPrice;

bool Buy = false;

int Tries, Cmd, Dev, Check;

//----

double DropPrice = WindowPriceOnDropped();

datetime DropTime = WindowTimeOnDropped();

int DropBar = ArrayBsearch(Time, DropTime);

// Check Global Variables

if (GlobalVariableCheck("bvnopen.OrdersNumber"))

OrdersNumber = GlobalVariableGet("bvnopen.OrdersNumber");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".OrdersNumber")))

OrdersNumber = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".OrdersNumber"));

if (GlobalVariableCheck("bvnopen.StartLot"))

StartLot = GlobalVariableGet("bvnopen.StartLot");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".StartLot")))

StartLot = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".StartLot"));

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".LotMagnifier")))

StartLot = StartLot * GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".LotMagnifier"));

else if (GlobalVariableCheck("bvnopen.LotMagnifier"))

StartLot = StartLot * GlobalVariableGet("bvnopen.LotMagnifier");

if (GlobalVariableCheck("bvnopen.TakeProfit"))

TakeProfit = GlobalVariableGet("bvnopen.TakeProfit");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".TakeProfit")))

TakeProfit = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".TakeProfit"));

if (GlobalVariableCheck("bvnopen.StopLoss"))

StopLoss = GlobalVariableGet("bvnopen.StopLoss");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".StopLoss")))

StopLoss = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".StopLoss"));

if (GlobalVariableCheck("bvnopen.DnDLevel"))

DnDLevel = GlobalVariableGet("bvnopen.DnDLevel");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".DnDLevel")))

DnDLevel = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".DnDLevel"));

if (GlobalVariableCheck("bvnopen.Sound"))

Sound = GlobalVariableGet("bvnopen.Sound");

if (GlobalVariableCheck(StringConcatenate("bvnopen.", Symbol(), ".Sound")))

Sound = GlobalVariableGet(StringConcatenate("bvnopen.", Symbol(), ".Sound"));

// Main Algorythm

if (BuySell == 0) {

if (DropPrice == 0) return; ВОТ НА ЭТОЙ СТРОКЕ РУГАЕТСЯ!!!!

if (DropPrice > Close[DropBar]) Buy = true;

if (DnDLevel == -1) Buy = !Buy;

} else if (BuySell > 0) Buy = true;

if (DnDLevel > 0 && TakeProfit == 0) TakeProfit = MathAbs(DropPrice - Bid) / Point;

if (DnDLevel < 0 && StopLoss == 0) StopLoss = MathAbs(DropPrice - Bid) / Point;

Print(OrdersNumber);

for (int i = 0; i < OrdersNumber; i++) {

Dev = i * Pips;

Lots = StartLot * MathPow(Magnifier, i);

if (Buy) {

if (Dev == 0) Cmd = OP_BUY;

else Cmd = OP_BUYLIMIT;

OpenPrice = NormalizeDouble(Ask - Dev * Point, Digits); // Buy

if (StopForEach) SLPrice = OpenPrice;

else SLPrice = Ask;

if (StopLoss != 0) SL = NormalizeDouble(SLPrice - StopLoss * Point, Digits);

else SL = 0;

if (TakeProfit != 0) TP = NormalizeDouble(OpenPrice + TakeProfit * Point, Digits);

else TP = 0;

} else {

if (Dev == 0) Cmd = OP_SELL;

else Cmd = OP_SELLLIMIT;

OpenPrice = NormalizeDouble(Bid + Dev * Point, Digits); // Sell

if (StopForEach) SLPrice = OpenPrice;

else SLPrice = Bid;

if (StopLoss != 0) SL = NormalizeDouble(SLPrice + StopLoss * Point, Digits);

else SL = 0;

if (TakeProfit != 0) TP = NormalizeDouble(OpenPrice - TakeProfit * Point, Digits);

else TP = 0;

}

Tries = MaxTries;

//Print(StringConcatenate(Symbol(), ",", Cmd, ",", Lots, ",", OpenPrice, ",", Slippage, ",", SL, ",", TP, ",", UserComment, ",", Magic));

while (Tries > 0) {

if (!OrderSend(Symbol(), Cmd, Lots, OpenPrice, Slippage, SL, TP, UserComment, Magic)) {

Check = GetLastError();

Print(StringConcatenate("Error: ", Check, "! ", ErrorDescription(Check)));

Sleep(SleepTime);

Tries --;

} else Tries = 0;

}

}

if (Sound) PlaySound("ok.wav");

//----

return(0);

}

//+------------------------------------------------------------------+

Dmitry Fedoseev
43507
Dmitry Fedoseev  
Надо return куда-нибудь вставить. Обычно перед последней закрывающей скобкой функции.
Alexey Viktorov
8083
Alexey Viktorov  
Перед последней скобкой return(0); имеется. Я вот думаю как посчитать сто третью строку, если я считать умею только до трёх???
MADALEX13
39
MADALEX13  

Строка на которую он ругается вот она

if (DropPrice == 0) return; ВОТ НА ЭТОЙ СТРОКЕ РУГАЕТСЯ!!!!

только русского текста там нет это я написал что бы можно было найти но видно не помогло

Dmitry Fedoseev
43507
Dmitry Fedoseev  
AlexeyVik:
Перед последней скобкой return(0); имеется. Я вот думаю как посчитать сто третью строку, если я считать умею только до трёх???

Крутить, мышку ставить и смотреть в статусной строке.
Dmitry Fedoseev
43507
Dmitry Fedoseev  
MADALEX13:

Строка на которую он ругается вот она

if (DropPrice == 0) return; ВОТ НА ЭТОЙ СТРОКЕ РУГАЕТСЯ!!!!

только русского текста там нет это я написал что бы можно было найти но видно не помогло


Наврено функция типа int, bool, double (короче - не void), значит в return должно возвращаться значение: return(0);
MADALEX13
39
MADALEX13  
Я так и сделал ошибка пропала. Но теперь он открывается только на покупку а на продажу не хочет
MADALEX13
39
MADALEX13  
Я так и сделал ошибка пропала. Но теперь он открывается только на покупку а на продажу не хочет
MADALEX13
39
MADALEX13  
Сделал проще : сохранил настройки для продажы и для покупки теперь просто подгружаю
Alexey Viktorov
8083
Alexey Viktorov  
Integer:

Крутить, мышку ставить и смотреть в статусной строке.

А оно мне надо?))) Это такой намёк, если человеку что-то надо, то на мой взгляд, он должен обеспечить минимум напряга тем к кому он обращается за помощью.


Какое красивое число постов у тебя... 11111

Dmitry Fedoseev
43507
Dmitry Fedoseev  
AlexeyVik:

А оно мне надо?))) Это такой намёк, если человеку что-то надо, то на мой взгляд, он должен обеспечить минимум напряга тем к кому он обращается за помощью.


Какое красивое число постов у тебя... 11111



Это да. Думал это правда вопрос по отсчет строки.

Вот вы и сломали мое красивое количество постов.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий