здравствуйте. вот только пару дней назад начал написание эксперта. опыт программирования есть но в MQL4я еще не программировал. еще многое стоит постичь , а пока я плаваю то прошу мне пока подсказать готовое решение)))). допустим я хочу открыть ордер на 0.01 лота и мне нужно так выставить тейкпрофит чтобы прибыль по нему была бы 0.5. покажите пожалуйста как это правильно сделать.
пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.
if(Count ==0) symbol = Symbol();
double bid =MarketInfo(symbol,MODE_BID); // Запрос значения Bid double ask =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask double point =MarketInfo(symbol,MODE_POINT);//Запрос Point double value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL); double digits = MarketInfo(symbol,MODE_DIGITS);
пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.
if(Count ==0) symbol = Symbol();
double bid =MarketInfo(symbol,MODE_BID); // Запрос значения Bid double ask =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask double point =MarketInfo(symbol,MODE_POINT);//Запрос Point double value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL); double digits = MarketInfo(symbol,MODE_DIGITS);
если я правильно понял эти функции уже для созданых ордеров. мне же нужно расчитать профит еще перед открытием ордера, чтобы поставить его сразу при создании ордера.
у меня эта программа будет использоваться не только для торговли но и для анализа истории. рассчитать нужно будет сколько ордеров по нужным параметрам было бы открыто за определенный срок времени. поэтому все нужно рассчитать вручную
pycha: у меня эта программа будет использоваться не только для торговли но и для анализа истории. рассчитать нужно будет сколько ордеров по нужным параметрам было бы открыто за определенный срок времени. поэтому все нужно рассчитать вручную
Кто знает, можно ли модифицировать TakeProfit у открытого ордера в минусовую зону если сделка находится в минусе?
пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.
symbol = Symbol();
double bid =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
double ask =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
double point =MarketInfo(symbol,MODE_POINT);//Запрос Point
double value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
double digits = MarketInfo(symbol,MODE_DIGITS);
if( bid<= stoploss1||step1 == 0)
{
step1++;
stoplevel= NormalizeDouble(stoplevel*point,digits);
stoploss1 = ask-stoplevel;
takeprofit1 = ask+stoplevel;
double profit =0.5;
double takeprofit2= profit * point * value * lot1 + bid;
takeprofit2 = NormalizeDouble(takeprofit2,digits);
if (takeprofit2 > takeprofit1)
takeprofit1 = takeprofit2;
пока ждал ответа - порылся , кое что нашел и стряпал такое. будет ли оно правильно показывать ? сегодня воскресение и ждать до 12 ночи не охота чтобы узнать правильно ли написал.
symbol = Symbol();
double bid =MarketInfo(symbol,MODE_BID); // Запрос значения Bid
double ask =MarketInfo(symbol,MODE_ASK); // Запрос значения Ask
double point =MarketInfo(symbol,MODE_POINT);//Запрос Point
double value =MarketInfo(OrderSymbol(), MODE_TICKVALUE);// Размер минимального изменения цены инструмента в валюте депозита
double stoplevel = MarketInfo(symbol,MODE_STOPLEVEL);
double digits = MarketInfo(symbol,MODE_DIGITS);
if( bid<= stoploss1||step1 == 0)
{
step1++;
stoplevel= NormalizeDouble(stoplevel*point,digits);
stoploss1 = ask-stoplevel;
takeprofit1 = ask+stoplevel;
double profit =0.5;
double takeprofit2= profit * point * value * lot1 + bid;
takeprofit2 = NormalizeDouble(takeprofit2,digits);
if (takeprofit2 > takeprofit1)
takeprofit1 = takeprofit2;
так не проще?
.
у меня эта программа будет использоваться не только для торговли но и для анализа истории. рассчитать нужно будет сколько ордеров по нужным параметрам было бы открыто за определенный срок времени. поэтому все нужно рассчитать вручную
https://www.mql5.com/ru/forum/351
.
спасибо, но там еще много для меня не понятного. просто подскажите пожалуйста вот этот код будет правильно считать или нет.
double takeprofit2= profit * point * value * lot1 + bid;
спасибо, но там еще много для меня не понятного. просто подскажите пожалуйста вот этот код будет правильно считать или нет.
double takeprofit2= profit * point * value * lot1 + bid;