Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
matrixebiz, рассматривали ли вы возможность того, что сделка открывается и закрывается на одной и той же свече до того, как свеча закрылась? возможно, вам также следует проверить список истории.
Я всегда переносил эту небольшую функцию, которую я написал, на все мои советники, возможно, вы тоже найдете ее полезной.
bool DecideToOpenTrade()
{
int total = OrdersTotal();
if (total > 0)
{
for(int cnt=0;cnt<total;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)
{
return (false);
}
}
}
}
// in case trades has already opened and closed within the candle
int histotal = OrdersHistoryTotal();
if (histotal > 0)
{
for(cnt=0;cnt<histotal;cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)
{
if (Time[0] <= OrderOpenTime()) // don't open a new position if we're still on the same candle
{
return (false);
}
}
}
}
}
return (true);
}
int start()
{
// some time check codes first.. blah blah
// ...
// ...
// ...
// check signals
if (Should_Buy())
{
if (DecideToOpenTrade())
{
//... trade opening codes here
}
}
if (Should_Sell())
{
if (DecideToOpenTrade())
{
//... trade opening codes here
}
}
}
Примечание: эта функция предполагает, что вы установили уникальное значение EA_MAGIC_NUM. Таким образом, проверка не будет просматривать сделки, открытые другими советниками.
Should_Buy() и Should_Sell() - это функции, которые я создаю во всех своих советниках, чтобы определить, произошел ли сигнал на покупку или продажу.
Надеюсь, это поможет. Напишите мне, если вам нужны дополнительные разъяснения.
приветствую,
ДзенСпасибо Zen Я думаю, что это подойдет мне просто, вероятно, нужно сделать несколько изменений, потому что мой советник является многовалютным торговым советником, поэтому я не мог проверить конкретную валюту, не зная, с какой валютной парой торговал советник, следовательно, причина, по которой я должен изменить код, чтобы искать конкретный OrderComment() вместо того, что у вас есть OrderSymbol(). Я использовал приведенный ниже код для проверки наличия уже существующих сделок, но у меня возникли проблемы с проверкой того, были ли сделки уже закрыты на том же баре.
for(int i=totalorders-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if (OrderComment() == EA_Name + MagicNumber) GoOrders = false; }
if (GoOrders){orders();}
1 сделка на сигнал
Привет всем, кто может помочь
Я очень новичок в кодировании и у меня есть проблема с ea, над которой я работаю, я бы очень хотел, чтобы эта ea размещала сделку и затем ждала другого сигнала, прежде чем она войдет в другую сделку.
сейчас она размещает сделку и как только сделка закрывается она снова входит в другую сделку не дожидаясь следующего сигнала теперь я хотел бы знать, если кто-нибудь знает код, который я использую, чтобы дождаться следующего сигнала перед входом снова.
заранее спасибо за любую помощь
Пожалуйста, помогите мне устранить эту ошибку
Я работаю над этим экспертом недавно, но все еще не могу убрать эту ошибку, поэтому я очень надеюсь, что кто-нибудь здесь может помочь мне заставить этого эксперта закрыть ордер, когда условие в противоположном направлении.Пожалуйста...
Ниже приведены ошибки;
2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: неизвестный тикет 197 для функции OrderClose
2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: ошибка OrderClose 4108
заранее спасибо.
int start()
{
if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0) <iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)
)
{
OrderSend(Symbol( ),OP_SELL, Lots,Bid, 0,Bid+StopLoss* Point,Bid- TakeProfit* Point,"", SystemMagicNumbe r,0,Red);
return(0);
}
if( iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)
)
{
OrderSend(Symbol( ),OP_BUY, Lots,Ask, 0,Ask-StopLoss* Point,Ask+ TakeProfit* Point,"", SystemMagicNumbe r,0,Blue) ;
return(0);
}
if (OrderType() ==OP_SELL)
{
if (iMA(NULL,0, 5, 0,MODE_ EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))
{
OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;
return(0);
}
}
if (OrderType() ==OP_BUY)
{
if (iMA(NULL,0, 5, 0, MODE_ EMA, PRICE_CLOSE, 0)<iMA(NULL,0,30, 0, MODE_EMA, PRICE_CLOSE, 0))
{
OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;
return(0);
}
}
Как создать объект конечной линии
Можно создать объект trendline_object, который является бесконечным. Но как я могу нарисовать конечную линию от одной точки к другой? Спасибо за любой ответ.
Можно создать объект trendline_object, который является бесконечным. Но как я могу нарисовать конечную линию от одной точки к другой? Спасибо за любой ответ.
установить OBJPROP_RAY в false
Советник отправляет ордер каждый тик после сигнала. ПОМОГИТЕ.
сейчас я учусь создавать советника.
как сделать так, чтобы советник понимал, что я хочу просто отправлять один ордер при каждом появлении сигнала.
логика такова
до появления сигнала он остается спокойным,
сразу после появления сигнала, он отправляет ордер, один раз.
и ждет другого сигнала.
проблема в том, что
этот Ea должен быть в состоянии отправить ордер независимо от того, был ли ликвидирован предыдущий ордер или нет.
Поэтому я не могу настроить его на отправку ордера только после закрытия предыдущего ордера.
Спасибо.
помощь в создании ea на основе индикатора
--------------------------------------------------------------------------------
уважаемые все
У меня есть индикатор (3ma cross с сигналом), мне нужно изменить его на ea, могу ли я скопировать ind init() в expert init() и ind start() в expert start(), а затем поставить функцию sell и buy, когда стрелка даст мне сигнал?
Я сделал это, но это не работает
помощь в решении проблемы кодирования
Привет
Я пытаюсь написать очень простой советник, который открывает несколько отложенных ордеров через фиксированные интервалы времени. При использовании он открывает ордера, но затем продолжает открывать их бесконечно. Как я могу закодировать его так, чтобы ордера открывались только один раз, а также если ордер становится реальным и достигает TP или SL, то он заменяется новым отложенным ордером из первоначального списка?
Большое спасибо за любую предложенную помощь,
Дэн
Одна сделка на магическое число?
Я пишу сценарий советника, который будет автоматически открывать сделку на основе ручных торговых решений. Например, я смотрю на график и определяю, по какой цене я хочу открыть ордер, каковы стоп и тейк и т.д.... Затем я устанавливаю советника, и когда цена будет достигнута, он откроет сделку.
Мне нужно сделать так, чтобы советник открывал только одну сделку на одно магическое число. Я буду вручную устанавливать магическое число, и каждое число будет уникальным. Таким образом, если сделка будет открыта, а затем остановлена, советник не будет пытаться открыть другую сделку, если цена сделки будет достигнута снова.
Есть мысли о том, как лучше всего этого добиться? Примеры кода тоже были бы полезны
...
Я пишу скрипт советника, который будет автоматически открывать сделку на основе ручных торговых решений. Например, я смотрю на график и определяю, по какой цене я хочу открыть ордер, какой стоп и тейк и т.д.... Затем я устанавливаю советника, и когда цена будет достигнута, он откроет сделку.
Мне нужно сделать так, чтобы советник открывал только одну сделку на каждое магическое число. Я буду вручную устанавливать магическое число, и каждое число будет уникальным. Таким образом, если сделка будет открыта, а затем остановлена, советник не будет пытаться открыть другую сделку, если торговая цена будет достигнута снова.
Есть мысли о том, как лучше всего этого добиться? Примеры кода тоже были бы полезныУ меня был тред на этом форуме, в котором было решение с магическим числом... к сожалению, davidke и walander ненавидели мои инновационные идеи и подняли вонь по всему форуму... в результате мой тред был удален...