Как кодировать? - страница 280

 

Конечно, на реальных счетах могут возникать проблемы, которые не проявляются на демо или в тестере стратегий, но обычно они не повторяются и возникают нечасто. Я никогда не видел и не слышал о такой проблеме.

Из вашего объяснения я не могу определить, сколько сделок открыто, когда возникает проблема. Если ошибка возникает при отсутствии открытых сделок, то это загадка. Если она возникает, скажем, при 5 открытых сделках, это, вероятно, имеет отношение к проблеме.

ERR_TRADE_DISABLED 133 Торговля отключена. Все попытки торговли должны быть прекращены.

Документация по этой ошибке указывает на то, что что-то не так с тем, как советник размещает сделку. Но поскольку оба советника используют одну и ту же логику OrderSend(), я задаюсь вопросом, не связано ли это с тем, что у вас запущено 2 советника. Обычно любая проблема, связанная с конфликтом, вызывает ошибку "Trade Context Busy" (146), а любые проблемы со счетом вызывают ошибку "Insufficient Funds" (134). Стоит попробовать запустить только один советник одновременно и посмотреть, изменит ли это ситуацию.

 

Avasys

Это может показаться глупым, но вы ведь скомпилировали советника?

После компиляции в папке Experts должен быть файл ex4.

 
michaelB:
Это может показаться глупым, но вы ведь компилировали советника? После компиляции в папке Experts должен быть файл ex4.

Вот что мне тоже нужно знать

Я вставил файл mq4 в папку experts, но когда я перезапустил MT4, он не создал файл ex4 в папке experts,

Так что мне нужно проверить код, если в нем есть ошибка.

 

Как изменить цвет индикатора IndicatorShortName

Уважаемые господа,

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

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")");

чтобы изменить цвет мелкой информации, которая у меня есть в отдельном окне индикатора в левом верхнем углу?

Pucio

 

КТО-НИБУДЬ МОЖЕТ СКАЗАТЬ МНЕ, ЧТО НЕ ТАК С ЭТИМ КОДОМ?

ЕСТЬ ЛИ КАКАЯ-НИБУДЬ ОШИБКА, ПОТОМУ ЧТО ОН НЕ СОЗДАЕТ EX4 ФАЙЛ, КОГДА Я ВСТАВЛЯЮ MQ4 ФАЙЛ В ПАПКУ EXPERTS

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

//| simple EA.mq4 |

//| Copyright © 2011, luktom.biz |

//| www.luktom.biz/en |

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

#property copyright "Copyright © 2011, luktom.biz."

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0;

extern double takeProfit = 500.0;

extern string Begin = "2: 00";

extern string End = "10: 00";

extern double distance = 60;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

double high;

extern double lots = 0.1;

int magic = 1232344524285020;

int slippage = 1;

string comment = "";

int ticket;

int short = 0;

long int = 0;

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

//| функция инициализации эксперта |

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

int init()

{

//----

//----

(0) return;

}

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

//| функция деинициализации эксперта | |

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

int deinit ()

{

//----

Print (countOrders (magic, OP_BUY));

//----

(0) return;

}

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

//| функция запуска эксперта |

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

int start()

{

Print (AccountCurrency ());

//----

if (isGoodTime (Begin, End))

{

short = 0;

long = 0;

if (! cond)

{

low = Bid;

high = Ask;

}

cond = true;

если (Bid < low) low = Bid;

if (Ask > high) high = Ask;

}

if ((high low) * 1000 > distance)

{

cond2 = true;

}

if (! isGoodTime (Begin, End))

{

cond = false;

}

if (! isGoodTime (Begin, End) & & cond2)

{

if (countOrders (magic, OP_SELL) == 0)

{

if (Bid " = (CRL-0.0005) & & short == 0)

{

short + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

ticket = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders (magic, OP_BUY) == 0)

{

if ((Ask-high) > = 0.005 & & long = = 0)

{

long + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

ticket = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) возврат;

}

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

bool isGoodTime (string, string, Begin, End) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) {

return (true);

}

return (false);

}

int countOrders (int, int oMagic oType) {

int count = 0;

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

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

if (OrderSymbol () = the = Symbol ()) {

if (OrderType () == oType || oType < 0) {

count ++;

}

}

}

}

}

return (count);

}

double sltpValue (double, int w1 w2)

{

if (w2 = = 0)

return (0);

return (NormalizeDouble (w1, Digits));

}

 
Avasys:
КТО-НИБУДЬ МОЖЕТ СКАЗАТЬ МНЕ, ЧТО НЕ ТАК С ЭТИМ КОДОМ?

ЕСТЬ ЛИ КАКАЯ-НИБУДЬ ОШИБКА, ПОТОМУ ЧТО ОН НЕ СОЗДАЕТ ФАЙЛ EX4, КОГДА Я ВСТАВЛЯЮ ФАЙЛ MQ4 В ПАПКУ EXPERTS.

Не могли бы вы рассказать нам, где вы взяли эту программу?

Похоже, что ea перепутана. Например, в строке 129, где у вас есть определение функции isGoodTime, мы видим:

bool isGoodTime (string, string, Begin, End)

должно быть:

bool isGoodTime (string Begin, string End).

Таких ошибок в ea очень много. Похоже, что код неполный, или защищен изменением кода, как это, и это делает этот источник бесполезным.

 
Kalenzo:
Не могли бы вы сказать нам, где вы взяли эту ea?

Похоже, что ea перепутана. Например, в строке 129, где у вас есть определение функции isGoodTime, мы видим:

bool isGoodTime (string, string, Begin, End)

должно быть:

bool isGoodTime (string Begin, string End)

В ea много подобных ошибок. Похоже, что код неполный, или защищен изменением кода, как это, и это делает этот источник бесполезным.

[lang=pl]Я автор. Я прикрепляю файл mq4 для Avasys. Я не знаю, кто изменил в коде функцию isGoodTime. В моем терминале она работает. Avasys, почему вы так нервничаете?

Если у вас есть проблемы, просто свяжитесь со мной, а не говорите об этом на форуме.[/lang].

Файлы:
 
g.pociejewski:
[lang=pl]Я автор. Я прилагаю файл mq4 для Avasys. Я не знаю, кто изменил в коде функцию isGoodTime. В моем терминале она работает. Avasys, почему вы так нервничаете? Если у вас есть проблемы, просто свяжитесь со мной, а не говорите об этом на форуме.[/lang].

Я не нервничаю, я не смог найти вас на форуме.

этот советник работает хорошо, но снова делает несколько сделок в день. Поэтому я хотел попросить советника совершать только одну сделку в день.

 
CodeMeister:
Конечно, на реальных счетах могут возникать проблемы, которые не проявляются в демо или тестере стратегий, но обычно они не повторяются и возникают нечасто. Я никогда не видел и не слышал о такой проблеме.

Из вашего объяснения я не могу определить, сколько сделок открыто, когда возникает проблема. Если ошибка возникает при отсутствии открытых сделок, то это загадка. Если она возникает, скажем, при 5 открытых сделках, это, вероятно, имеет отношение к проблеме.

ERR_TRADE_DISABLED 133 Торговля отключена. Все попытки торговли должны быть прекращены.

Документация по этой ошибке, похоже, указывает на то, что что-то не так с тем, как советник размещает сделку. Но поскольку оба советника используют одну и ту же логику OrderSend(), я задаюсь вопросом, не связано ли это с тем, что у вас запущено 2 советника. Обычно любая проблема, связанная с конфликтом, вызывает ошибку "Trade Context Busy" (146), а любые проблемы со счетом вызывают ошибку "Insufficient Funds" (134). Стоит попробовать запустить только один советник одновременно и посмотреть, изменит ли это ситуацию.

Советник, у которого возникают проблемы, открывает только одну сделку за раз. Никакие другие сделки не были открыты, когда возникали ошибки. Я попробую запустить только один советник и посмотрю, поможет ли это. Спасибо за совет.

 

Как прочитать этикетку MT4

Привет,

Я модифицировал индикатор и создал объект OBJ_LABEL со значениями, чтобы мой советник мог получать значения в OBJ_LABEL. Эти значения являются ценовыми точками, и я не могу создать другой буфер в индикаторе для их хранения, поэтому я просто поместил их в эти метки. Кажется, что это хорошее решение, НО, я не могу понять, как прочитать метку в MT4 в моем советнике!!! Я использую функцию GETOBJECT, но она возвращает только определенные свойства, а текстовое значение метки или текстового объекта не является одним из них!!!

Кто-нибудь может мне помочь?

Спасибо!