И получается, что информация в Окне данных совершенно в этом помочь не может? Если может - то как? И как открыть Окно данных, не найду никак. Извините - забросал Вас вопросами.Да, но не обязательно до 8, может быть и больше.
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
И получается, что информация в Окне данных совершенно в этом помочь не может? Если может - то как? И как открыть Окно данных, не найду никак. Извините - забросал Вас вопросами.Да, но не обязательно до 8, может быть и больше.
Super TrendСпасибо, что ответили. Интересуют буфера сигналов этих двух индикаторов. Хорошо бы понять, как их определить.
В индикаторе Super Trend сигналом является смена цвета линии индикатора. Во втором - четкие точки-сигналы на покупку и продажу.
Спасибо. Значит если я правильно понял SuperTrend - буфера сигналов Buy и Sell имеют одно из трех значений: 1; 0; -1 А точно определить можно перебором.Super Trend
сигнальный буфер 2, он значения принимает от 1 до -1, сигнал это и есть такое изменение (смотри скрин).
neurotrend
там буферные стрелки (в виде точек), номера буферов в настройках видно (смотри скрин).
SuperTrendСпасибо. Значит если я правильно понял SuperTrend - буфера сигналов Buy и Sell имеют одно из трех значений: 1; 0; -1 А точно определить можно перебором.
В neurotrend буфер Buy равен 4; буфер Sell равен 5.
Правильно?
//+------------------------------------------------------------------+
//| 789v2.mq4 |
//+------------------------------------------------------------------+
#property version "1.00"
#property strict
//-----Входные данные
extern int SL = 100; //Стоплос
extern int TP = 450; //Тейкпрофит
extern int MG = 456789;//Магик
extern int SP = 30; //Слиппейдж
extern double LT = 0.01; //Объем сделки
extern double ak = 0.01; //ариф коэф
extern int gk = 3; //геом коэф
extern color clolor_buy = clrAliceBlue;//Цвет ордеров бай
extern color color_sell = clrAliceBlue;//Цвет ордеров селл
extern color celevoj_prof = clrAliceBlue;//Цвет целевого профита
extern color one_liniay = clrAliceBlue;//Цвет первой линии
extern color two_liniay = clrAliceBlue;//Цвет второй линии
class LastOrder
{
private:
int order_tiket;
datetime last_time;
public:
int FindLastOrdrer(int type = -1)
{
int ticket = -1;
datetime dt = 0;
int cnt = HistoryTotal();
for(int i=0; i < cnt; i++)
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() != 456789) continue;
if(type != -1 && OrderType() != type) continue;
if(OrderCloseTime() > dt)
{
dt = OrderCloseTime();
ticket = OrderTicket();
}
}
order_tiket = ticket;
return order_tiket;
}
} LO;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class Lot
{
private:
double lt;
public:
double fiks_lot()
{
return lt=0.01;
}
double dannij_lot(double lot)
{
lt=lot;
return lt;
}
double min_lot()
{
lt = MarketInfo(_Symbol,MODE_MINLOT);
return lt;
}
double max_lot()
{
lt = MarketInfo(_Symbol,MODE_MAXLOT);
return lt;
}
double balance_lot()
{
lt = NormalizeDouble(MathCeil(AccountBalance()/100)/100,2);
return lt;
}
double eqitity_lot()
{
lt = NormalizeDouble(MathCeil(AccountEquity()/100)/100,2);
return lt;
}
double ArifPlus(int ticket, double koef)
{
if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
{
if(OrderLots()+ koef > min_lot() || OrderLots()+ koef > max_lot())
{
double profit = OrderProfit()+OrderCommission()+OrderSwap();
if(profit>0.00001)
lt = OrderLots()+ koef;
else
lt = OrderLots();
}
}
return lt;
}
double GeomPlus(int ticket, double koef)
{
if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
{
double profit = OrderProfit()+OrderCommission()+OrderSwap();
if(OrderLots()* koef > min_lot() || OrderLots()* koef > max_lot())
{
if(profit>0.00001)
lt = OrderLots()* koef;
else
lt = OrderLots();
}
}
return lt;
}
} VL;
enum order_lot
{
fiks_lot,//фиксированый
dannij_lot,//данный лот
min_lot,//минимальный
max_lot,//максимальный
balance_lot,//лот баланса
eqity_lot,//лот по эквити
arif_lot,//лот ариф
geom_lot//лот геом
};
sinput order_lot o_lot = 0;//Вид лота
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(OrdersTotal()==0)
{
Comment(LO.FindLastOrdrer());//это строка работает.
int ticketss = OrderSend(_Symbol,OP_SELL,Ust_lot(),Bid,30,NormalizeDouble(Ask+700*Point,Digits),NormalizeDouble(Bid-1400*Point,Digits),NULL,456789,0,color_sell);
}
}
//+------------------------------------------------------------------+
double Ust_lot(double lot= 0.03)
{
switch(o_lot)
{
case 0://фиксированный лот
lot = 0.01;
break;
case 1://данный лот
lot = VL.dannij_lot(0.05);
break;
case 2://минимальный лот
lot = VL.min_lot();
break;
case 3://максимальный лот
lot = VL.max_lot();
break;
case 4://лот по балансу
lot = VL.balance_lot();
break;
case 5://лот по эквити
lot = VL.eqitity_lot();
break;
case 6:
lot = VL.ArifPlus(LO.FindLastOrdrer(),ak);// строка 160 работает правильно а это 188 не возвращает нужное число
break;
case 7:
lot = VL.GeomPlus(LO.FindLastOrdrer(),gk);
break;
}
return lot;
}
"Всё или ничего" ORDER_FILLING_FOK не прокатывает. Возможно прокатит "Всё или частично" ORDER_FILLING_IOC.Нужен совет профессионалов! Решил первый свой советник написать). Может подскажет кто, какой структура запроса на открытие рыночной позиции у брокера Tickmill,demo,hedge. Вот такой выдаёт ошибку некорректный filling order.
trade_request.action = TRADE_ACTION_DEAL;
trade_request.symbol = _Symbol;
trade_request.volume = Lot;
trade_request.type = type;
trade_request.type_filling = ORDER_FILLING_FOK;
trade_request.deviation = Slippage;
trade_request.magic = Magic;
trade_request.tp = NormalizeDouble(price + TakeProfit * point, digits);
Или где эту информацию у брокеров искать?
а изучить метод запроса на открытие ордера не судьба?Нужен совет профессионалов! Решил первый свой советник написать). Может подскажет кто, какой структура запроса на открытие рыночной позиции у брокера Tickmill,demo,hedge. Вот такой выдаёт ошибку некорректный filling order.
trade_request.action = TRADE_ACTION_DEAL;
trade_request.symbol = _Symbol;
trade_request.volume = Lot;
trade_request.type = type;
trade_request.type_filling = ORDER_FILLING_FOK;
trade_request.deviation = Slippage;
trade_request.magic = Magic;
trade_request.tp = NormalizeDouble(price + TakeProfit * point, digits);
Или где эту информацию у брокеров искать?
Удалить и не думать об этом, вот и все дела ). И без этого прокатит... ). А если нет совсем желания разбираться в MqlTradeRequest, MqlTradeResult, MqlTradeCheckResult, использовать библиотеку Trade.mqh надо, объект класса CTrade объявить и с ним там уже упрощённо работать, типа того.trade_request.type_filling = ORDER_FILLING_FOK;
Один индикатор не может одновременно рисовать свои графики и на ценовом графике и в подвале. Если много расчетов запихать в один индикатор, то он будет отнимать много времени у терминала и тот будет ругаться и требовать переписать индикатор, т.к. время обработки каждого индикатора ограничено в терминале.Надо это все сделать одним индикатором,,
хорошо что я об этом не знаю, а то бы мой индюк не работал бы.Один индикатор не может одновременно рисовать свои графики и на ценовом графике и в подвале. Если много расчетов запихать в один индикатор, то он будет отнимать много времени у терминала и тот будет ругаться и требовать переписать индикатор, т.к. время обработки каждого индикатора ограничено в терминале.
А если разделено на несколько индикаторов, то для каждого отдельно выделяется терминальное время и все счастливы.![]()
Вот тебе пример. Один индюк и в подвале и на экране одновременно, не нужно говорить что такое не возможно.Один индикатор не может одновременно рисовать свои графики и на ценовом графике и в подвале. Если много расчетов запихать в один индикатор, то он будет отнимать много времени у терминала и тот будет ругаться и требовать переписать индикатор, т.к. время обработки каждого индикатора ограничено в терминале.
А если разделено на несколько индикаторов, то для каждого отдельно выделяется терминальное время и все счастливы.![]()
Такого нет в принципе! Скинь посмотреть.))) У каждого индюка есть только один выбор - рисовать свой график или на ценовом, или в подвале. Стрелки и т.п. не учитываем - это графические элементы, а не буферный график индикатора.Вот тебе пример. Один индюк и в подвале и на экране одновременно, не нужно говорить что такое не возможно.
Скрин со всех сторон обрубленный и сколько там индюков не видно. Не видно не тест ли это, где запускается 1 индюк, который запускает другой. Слишком много мути в твоем скрине!Вот тебе пример. Один индюк и в подвале и на экране одновременно, не нужно говорить что такое не возможно.
ну ты даёшь. Когда устанавливаешь два индюка один на основном а другой в подвале тогда показывает-окно1 и окно2 и т.д., а здесь только окно1.Скрин со всех сторон обрубленный и сколько там индюков не видно. Не видно не тест ли это, где запускается 1 индюк, который запускает другой. Слишком много мути в твоем скрине!