Основные вопросы ... - страница 9

 
Zen_Leow:
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, который является бесконечным. Но как я могу нарисовать конечную линию от одной точки к другой? Спасибо за любой ответ.

 
MetaMaster:
Можно создать объект trendline_object, который является бесконечным. Но как я могу нарисовать конечную линию от одной точки к другой? Спасибо за любой ответ.

установить OBJPROP_RAY в false

 

Советник отправляет ордер каждый тик после сигнала. ПОМОГИТЕ.

сейчас я учусь создавать советника.

как сделать так, чтобы советник понимал, что я хочу просто отправлять один ордер при каждом появлении сигнала.

логика такова

до появления сигнала он остается спокойным,

сразу после появления сигнала, он отправляет ордер, один раз.

и ждет другого сигнала.

проблема в том, что

этот Ea должен быть в состоянии отправить ордер независимо от того, был ли ликвидирован предыдущий ордер или нет.

Поэтому я не могу настроить его на отправку ордера только после закрытия предыдущего ордера.

Спасибо.

 

помощь в создании ea на основе индикатора

--------------------------------------------------------------------------------

уважаемые все

У меня есть индикатор (3ma cross с сигналом), мне нужно изменить его на ea, могу ли я скопировать ind init() в expert init() и ind start() в expert start(), а затем поставить функцию sell и buy, когда стрелка даст мне сигнал?

Я сделал это, но это не работает

Файлы:
 

помощь в решении проблемы кодирования

Привет

Я пытаюсь написать очень простой советник, который открывает несколько отложенных ордеров через фиксированные интервалы времени. При использовании он открывает ордера, но затем продолжает открывать их бесконечно. Как я могу закодировать его так, чтобы ордера открывались только один раз, а также если ордер становится реальным и достигает TP или SL, то он заменяется новым отложенным ордером из первоначального списка?

Большое спасибо за любую предложенную помощь,

Дэн

 

Одна сделка на магическое число?

Я пишу сценарий советника, который будет автоматически открывать сделку на основе ручных торговых решений. Например, я смотрю на график и определяю, по какой цене я хочу открыть ордер, каковы стоп и тейк и т.д.... Затем я устанавливаю советника, и когда цена будет достигнута, он откроет сделку.

Мне нужно сделать так, чтобы советник открывал только одну сделку на одно магическое число. Я буду вручную устанавливать магическое число, и каждое число будет уникальным. Таким образом, если сделка будет открыта, а затем остановлена, советник не будет пытаться открыть другую сделку, если цена сделки будет достигнута снова.

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

 

...

jerzzhere:
Я пишу скрипт советника, который будет автоматически открывать сделку на основе ручных торговых решений. Например, я смотрю на график и определяю, по какой цене я хочу открыть ордер, какой стоп и тейк и т.д.... Затем я устанавливаю советника, и когда цена будет достигнута, он откроет сделку.

Мне нужно сделать так, чтобы советник открывал только одну сделку на каждое магическое число. Я буду вручную устанавливать магическое число, и каждое число будет уникальным. Таким образом, если сделка будет открыта, а затем остановлена, советник не будет пытаться открыть другую сделку, если торговая цена будет достигнута снова.

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

У меня был тред на этом форуме, в котором было решение с магическим числом... к сожалению, davidke и walander ненавидели мои инновационные идеи и подняли вонь по всему форуму... в результате мой тред был удален...