[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 743

 
Infinity:

А как тогда получается, я к примеру отловил коэфициент 1 пункта, RSI  прошел по своей шкале 50, получается что он 50 пунктов прошел, а на деле был флэт. и свеча 2 пунктов. там же еще и сила движения заложена. Так как в таком случае определять

Цена прошла пункт вверх. В RSI произошли какие-то вычисления. Его значение изменилось на икс. Цена прошла ещё пункт вверх. Значение индикатора должно измениться снова на тот же икс. Попробуйте принтануть - должно так и получиться.
 
xrust:

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

Спасибо, Рустам. Хорошая идея! Правильно говорят: одна голова хорошо, а с туловищем - лучше... :)
 
artmedia70:
Спасибо, Рустам. Хорошая идея! Правильно говорят: одна голова хорошо, а с туловищем - лучше... :)

Здраствуйте подскажите пожалуста как логи посмотреть в МТ4
 
LAIT123:

Здраствуйте подскажите пожалуста как логи посмотреть в МТ4

Наверное ну очень нужно... :) Или мышку заело...

Папка расположения MT4/logs

Папка расположения MT4\tester\logs

У меня вот тут:

D:\Program Files\MetaTrader - E-Global TFG-счёт-1654729\logs

D:\Program Files\MetaTrader - E-Global TFG-счёт-1654729\tester\logs

 

скажите почему после срабаывания ордера данные не обнуляются? правильно ли я написал условия if(tic1>0) для проверки что ордер открыт и надо обнулит переменые

int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double LT=0; //Лот
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
   {PR=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;
    if(Lot>0) LT=3*Lot;}
int tic1=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
//-----------
if(tic1<0) Print(GetLastError());

if(tic1>0){
   bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл
}
//-----------
return(tic1);}
 
FoxUA:

скажите почему после срабаывания ордера данные не обнуляются? правильно ли я написал условия if(tic1>0) для проверки что ордер открыт и надо обнулит переменые

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

А вы их по-новой объявляете внутри функции.

bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл
Они будут видны только внутри ф-ции. При выходе из функции их значения будут потеряны, а те, что были объявлены на глобальном уровне - остаются без изменений,
т.е. вы объявили внутри функции новые переменные, а те, что хотите менять остались за её пределами.
Уберите bool и double из вышеприведённого куска вашего кода.
 
artmedia70:
Если мне память не изменяет, то у вас эти переменные уже объявлены на глобальном уровне...

А вы их по-новой объявляете внутри функции.

Они будут видны только внутри ф-ции. При выходе из функции их значения будут потеряны, а те, что были объявлены на глобальном уровне - остаются без изменений,
т.е. вы объявили внутри функции новые переменные, а те, что хотите менять остались за её пределами.
Уберите bool и double из вышеприведённого куска вашего кода.

убрал и прикомпилироваии выдает кучу ошибок

к этим переменым

',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 2)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 6)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)

 
FoxUA:

убрал и прикомпилироваии выдает кучу ошибок

к этим переменым

',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 2)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 4)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 6)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (143, 8)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (144, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (145, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (146, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)
'=' - assignment expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 3)
',' - semicolon expected C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)
',' - unexpected token C:\Program Files\Deltabank Trader 4\experts\test5.mq4 (148, 5)

Вы их объявляли на глобальном уровне за пределами своей функции? Да и вместо запятых поставьте ; Наверняка же запятые не поменяли на точку с запятой...
 

Граждане!

Подскажите как в эксперте получить доступ к данным за пределами окна графика?

Проблема в том, что например, если максимальное количество баров в окне установлено равным 300, то: 

1.Функция  iBarShift("EURUSD",60,ВремяБара,false) упорно не хочет выдавать значения больше 300 при любом значении "ВремяБара".

2.Если обратиться к серии iOpen("EURUSD",60,i), то при i>300 она выдает нули.

и т.п.

Можно это как-то побороть? 

 

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

Заранее спасибо за ответ:)

Причина обращения: