Как кодировать? - страница 59

 

Привет всем...

как я могу установить код ордера в метаэдиторе,

Я использую демо-счет... можно ли установить ордер на демо-счете?

Я пробовал, но не получилось

 

Параметр BE

Здравствуйте.

Мне нужна помощь, чтобы добавить BE стоп параметр в этом советнике, пожалуйста.Этот советник я взял с первой страницы этой темы, которая основана на системе Trendmanager.

Заранее спасибо.

Cha.

e-trendmanager.mq4

Файлы:
 

Файл MQ4, пожалуйста

Здравствуйте.
У меня есть текстовый файл TrendmanagerEA. Не мог бы кто-нибудь конвертировать его в файл MQ4, пожалуйста. Я буду тестировать и сравнивать с другим советником.

Заранее спасибо.

Ча.

#property copyright "Copyright ฉ 2006, www.easyforexsignals.com"

#property link "paul@easyforexsignals.com"

#define LONGCOLOR DodgerBlue

#define SHORTCOLOR OrangeRed

#define MAGICTM 20070610

extern double TMlots=0.1;

extern int MoveStopAmount = 20;

extern int MoveStopAfterProfitof = 55;

extern int minadxlevel = 20;

extern double minSolarWind = 0.25;

extern double minJuice = 0.001;

extern int StopLoss = 50,

Slippage = 3,

TakeProfit=120;

datetime LastTMSignalTime;

extern int MinTimeBetweenSignals = 60;

int init(){

return(0);

}

int deinit(){

return(0);

}

int start()

{

int res= 0;

if(Bars<100 || IsTradeAllowed()==false) return;

CheckTrendManager(); // проверка системы тренд-менеджера

CheckForTMClose(); // проверка закрытий по данной системе

CheckForStopMove(); // перемещение стопов по любым открытым сделкам

}

void CheckForStopMove() {

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continue;

if(OrderType()==OP_BUY)

{

// передвиньте стопы вверх, чтобы зафиксировать прибыль

if ((OrderOpenPrice()-Ask) >= (MoveStopAfterProfitof * Point())) {

OrderModify(OrderTicket(),0,OrderOpenPrice()+(MoveStopAmount*Point),OrderTakeProfit(),0,Black);

}

}

if(OrderType()==OP_SELL)

{

// перемещаем стопы вверх, чтобы зафиксировать прибыль

if ((OrderOpenPrice() - Bid) >= (MoveStopAfterProfitof * Point())) {

OrderModify(OrderTicket(),0,OrderOpenPrice()-(MoveStopAmount*Point),OrderTakeProfit(),0,Black);

}

}

}

}

void CheckTrendManager() {

if (Time[0]-LastTMSignalTime > MinTimeBetweenSignals) {

double PipsStopLoss, PipsTakeProfit;

double TMbuy = iCustom(Symbol(),Period(), "TrendManagerNT",2, 0);

double TMsell = iCustom(Symbol(),Period(), "TrendManagerNT",3, 0);

int orderresult;

if (TMbuy > 0) {

if (CheckFilters(OP_BUY)==true) {

PipsStopLoss = Ask-(StopLoss * Point());

PipsTakeProfit = Ask+(TakeProfit * Point());

CloseExisting(OP_SELL);

orderresult =OrderSend(Symbol(),OP_BUY,TMlots,Ask,Slippage,PipsStopLoss,PipsTakeProfit,"",MAGICTM,0,Maroon);

Print(Time[0] + "BUY ON TM, order result was :" + orderresult + "stop:" + PipsStopLoss + ",takeprofit:" + PipsTakeProfit);

LastTMSignalTime = Time[0];

}

}

if (TMsell > 0){

if (CheckFilters(OP_SELL)==true) {

PipsStopLoss = Bid+(StopLoss * Point());

PipsTakeProfit = Bid-(TakeProfit * Point());

CloseExisting(OP_BUY);

orderresult = OrderSend(Symbol(),OP_SELL,TMlots,Bid,Slippage,PipsStopLoss,PipsTakeProfit,"",MAGICTM,0,Green);

Print(Time[0] + "SELL ON TM, результат ордера :" + orderresult + "stop:" + PipsStopLoss + ",takeprofit:" + PipsTakeProfit);

LastTMSignalTime = Time[0];

}

}

}

}

void CheckForTMClose() {

double TMclosesell = iCustom(Symbol(),Period(), "TrendManagerNT",4, 0);

double TMclosebuy = iCustom(Symbol(),Period(), "TrendManagerNT",5, 0);

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continue;

//---- просто закройте его

if ((TMclosesell > 0) && (OrderType()==OP_SELL)) {

OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink);

}

if ((TMclosebuy > 0) && (OrderType()==OP_BUY)) {

OrderClose(OrderTicket(),OrderLots(),Bid,10,Pink);

}

}

}

// просто закрывает все существующие позиции

void CloseExisting(int OrderTyp)

{

for(int i=0;i<OrdersTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGICTM || OrderSymbol()!=Symbol()) continue;

//---- просто закройте его std проскальзыванием

if(OrderType()==OrderTyp)

{

OrderClose(OrderTicket(),OrderLots(),Bid,10,White);

}

}

}

bool CheckFilters(int OrderTyp) {

return(true);

}

 

Просто переименуйте файл с расширением .mq4. Вот и все.

 

Здравствуйте.

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

Спасибо.

Ча.

 
chawichsak:
Здравствуйте.

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

Спасибо.

Ча.

Done plut исправил несколько ошибок в коде.

Роберт

Файлы:
 

Нужна помощь по функции ordeersend

Здравствуйте,

У меня проблемы с функцией ordersend().

Вот код, который я сделал:

int x = 1;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

int start()

{

double prixdachat = MathMax(High[1],High[2]);

double prixdevente = MathMin(Low[1],Low[2]);

int ticket1,ticket2;

if (x==1)

{

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green);

ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red);

Print("заказ запущен");

x++;

if(ticket1<0)

{

Print("OrderSend 1 failed with error #",GetLastError());

return(0);

}

if(ticket2<0)

{

Print("OrderSend 2 failed with error #",GetLastError());

return(0);

}

}

return(0);

}

С этим кодом я получаю ошибку #130 (ошибка прекращается).

Может ли кто-нибудь объяснить мне, что не так, я не понимаю...

спасибо.

 

Если вы используете так называемое"мгновенное исполнение", то есть используете ордера OP_BUY или OP_SELL, вы не можете указать цену входа, отличную от Ask для покупок и Bid для продаж.

 
fracte:
Здравствуйте,

ticket1=OrderSend(Symbol(),OP_BUY,1,prixdachat+10*Point,5,prixdachat,prixdachat+20*Point, "ordre",1,15,Green);

ticket2=OrderSend(Symbol(),OP_SELL,1,prixdevente-10*Point,5,prixdevente,prixdevente-20*Point, "ordre",2,15,Red);

С этим кодом я получаю ошибку #130 (ошибка прекращается).

Может ли кто-нибудь объяснить мне, что не так, я не понимаю...

спасибо.

ИСПОЛЬЗУЙТЕ ОТЛОЖЕННЫЕ ОРДЕРА ВМЕСТО МГНОВЕННЫХ ОРДЕРОВ.

(например, замените OP_BUY на OP_BUYSTOP и OP_SELL на OP_SELLSTOP)

и все будет в порядке.

 

БОЛЬШОЕ СПАСИБО МИСТЕР ПИП,

CHA.