Пока нет объявлений.
500 результатов за 0.0612 секунд.
Ключевые слова
Участники
Метки
-
Я целое число не прибавляю, а везде умножаю/делю на point. Или я просто не видел, но трейлинг сейчас работает без ошибок пока!... -
Проще в одном месте перемножить и не париться, что потом где то забыл умножить!
Вроде как все цены нужно нормализвать - даже те которые берутся из терминала, мне так спокойней, что все выражение нормализованно, а не часть его.
Так вроде как внешние переменные не хорошо изменять, вот и сначала присвоил им переменные которые в дальнейшем изменяем!...Прокомментировать:
-
Я перед отправкой на сервер нормализую
MQL код:NoLoss=NormalizeDouble(OrderOpenPrice()+bzb*point, digits)
MQL код:extern int Indent = 0; // отступ от Max/Min свечи
это входной параметр, уже исправил на 10!...Прокомментировать:
-
Поглядите плиз, правильно теперь? Верней будет - рабочий код получается или нет, я что - то в OnInit сомневаюсь, так я сделал или не так?!
MQL код:extern bool AllSymbol = True; // тралить все ордера
extern int Indent = 0; // отступ от Max/Min свечи
extern int Bezubytok = 5; // прибыль безубытка
extern int Magic = 777; // магик
double SL,NoLoss,SlBuy,SlSell,ask,bid,point;
int PH,PL,stoplevel,digits,delta,bzb;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
delta=Indent;
bzb=Bezubytok;
if(Digits==3 || Digits==5)
{
delta*=10;
bzb*=10;
}
return(INIT_SUCCEEDED);Прокомментировать:
-
Если можно для выбранного ордера определить количество знаков после запятой, то это не значит что их нужно определять под каждый ордер, достаточно определить под сервер! А я все определяю - долбанная логика моя - меня совсем с ума сведет!...Прокомментировать:
-
Sanic правильно написал, сервер то один либо 4-х значный либо 5-ти значный соответственно 2/4 знака или 3/5. Просто объявить в OnInit и все! А я все под одну дудочку и определил для выбранного ордера!...Прокомментировать:
-
Где то в видео курсе я видел, надо опять смотреть курс! Присваивается значение и все!...Прокомментировать:
-
Сейчас подумаю, так правильно тоже получается - я об этом уже думал, но че то ни чего не придумал!...Прокомментировать:
-
Правильно, но я могу ими дальше пользоваться (ниже по коду), после того как их определил, если конечно не - это не функция! Функцию можно вызывать из любого места! Я не умею объяснять!))...Прокомментировать:
-
Приведи пример, где видел, что вроде запоминать значение нужно, а как не помню!...Прокомментировать:
-
Digits и digits есть разница?...Прокомментировать:
-
Если я их уберу в OnInit он их вообще не увидит, если бы было Digits ==3 || Digits ==5, тогда да, но это уже получается для текущего графика, а мне надо для выбранного ордера, не зависимо от графика. Я не могу их поставить выше по коду, чем я их определяю. Код пишется сверху вниз!) Digits - для текущего символа(графика), а digits для выбранного ордера, не зависимо от графика! Пойми разницу или я что не догоняю!...Прокомментировать:
-
А как сделать чтобы значение delta и bzb на каждой итерации не увеличивалось в 10 раз, а только один раз для каждого ордера? Чет вообще ни как не пойму! Сейчас проверил на 5-ти знаке, работает, но правда пока только один ордер соответствует условиям!
MQL код:extern bool AllSymbol=True;// тралить все ордера
extern int Indent = 0;
extern int Bezubytok = 5;
extern int Magic = 777;
double SL,NoLoss,SlBuy,SlSell,ask,bid,point;
int PH,PL,stoplevel,digits,delta,bzb;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+Прокомментировать:
-
Здесь то вроде правильно, в безубыток переводиться тогда, когда цена ушла на расстояние в 2 стоплосса. А стоплосс у меня выставляется на минимуме свечи, поэтому я его здесь и высчитываю. При дальнейшей модификации он мне и не нужен SlBuy - только для перевода в безубыток.
MQL код:if(OrderType()==OP_BUY)
{
SlBuy=OrderOpenPrice()-OrderStopLoss(); // размер стоплосс
if(bid-OrderOpenPrice()>=SlBuy*2 && OrderStopLoss()<OrderOpenPrice())// если цена ушла на 2 стоплосса и SL меньше цены открытия
{
NoLoss=NormalizeDouble(OrderOpenPrice()+Bezubytok* point,digits); // расчитываем безубыток
if(!OrderModify(OrderTicket(),OrderOpenPrice(),NoL oss,OrderTakeProfit(),0,White)) // модифицируем
Print("Ошибка переноса стоплосс в безубыток!Прокомментировать:
Прокомментировать: