Спрашивайте! - страница 69

 

Привет,

Кто-нибудь может сказать мне, что не так с этим кодом?

Он вообще не открывает ни одного ордера?

Я тестировал его в 2007.01.03.

Спасибо

extern string StrGetPosition = "19:55";

extern string StrStartOrderTime = "20:00";

extern string StrEndOrderTime = "23:59";

extern double MyBidPrice = 1.3271;

int CountOrder = 0, BuyMagicNumber, SellMagicNumber;

extern double Lots = 1;

extern int StopLoss = 35;

extern int TakeProfit = 8;

extern bool FlagBuy = false;

int x, b, FindMagicSell, TicketSell, FindMagicBuy, TicketBuy;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

MyBidPrice = 1.3271;

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

int GetPosition, StartOrderTime, EndOrderTime, o;

GetPosition = StrToTime(StrGetPosition);

StartOrderTime = StrToTime(StrStartOrderTime);

EndOrderTime = StrToTime(StrEndOrderTime);

if (TimeCurrent() >= StartOrderTime && TimeCurrent() <= EndOrderTime)

{

FlagBuy = true;

//+------------

//| Posisi BUY

//+------------

if (FlagBuy == true)

{

if ((MyBidPrice == Bid) && (CountOrder < 6))

{

CountOrder++;

BuyMagicNumber = StrToInteger("1" + CountOrder + Day() + Month() + Year());

o = OrderSend(Symbol(),OP_BUY,Lots,Bid,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Test",BuyMagicNumber,0,Green);

if (o < 1) MessageBox("ERROR!!");

if (CountOrder > 1) ModifyBuy();

if (CountOrder == 5) FlagBuy = false;

MyBidPrice = Bid - (2*Point);

}

ShowComment();

}

}

//----

return(0);

}

//+------------------------------------------------------------------+

void ModifyBuy()

{

for (x = 1; x < CountOrder; x++)

{

FindMagicBuy = StrToInteger("1" + x + Day() + Month() + Year());

for (b = 0; b < OrdersTotal(); b++)

{

OrderSelect(b,SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber() == FindMagicBuy)

{

TicketBuy = OrderTicket();

OrderSelect(TicketBuy,SELECT_BY_TICKET);

OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderTakeProfit()-(2*Point),0);

break;

}

}

}

}

void ShowComment()

{

Comment("DayOfWeek = ",DayOfWeek(),"\nFLAG BUY : ",FlagBuy,"\nCount Order ",CountOrder,"\nNext order = ",MyBidPrice,"\nBID = ",Bid,"\nTime : ",TimeToStr(TimeCurrent(),TIME_MINUTES));

}
 

Не могу найти файл MQ4 для индикатора

Я надеюсь, что кто-нибудь сможет помочь мне с тем, что, как я изначально думал, будет довольно простым. Я хочу установить звуковое оповещение на индикатор, который на самом деле поставляется с Metatrader, чтобы при достижении определенного уровня он сообщал мне об этом. Индикатором является Force Index, однако я не могу найти файл MQ4 для него нигде в папке Experts/Indicators. Есть ли у кого-нибудь идея, где я могу найти этот файл?

Если я смогу найти файл mq4, буду ли я прав, если предположу, что смогу использовать код, приведенный Codersguru в начале этой темы, чтобы добавить к нему оповещение?

спасибо

 

ссылка Предыдущий пост

Мне удалось решить мою проблему из вышеуказанного сообщения.

Спасибо всем за интерес.

 
Hartadi:
Привет,

Кто-нибудь может сказать мне, что не так с этим кодом?

Он вообще не открывает ни одного ордера?

Я тестировал его в 2007.01.03.

Спасибо

o = OrderSend(Symbol(),OP_BUY,Lots,Bid,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"Test",BuyMagicNumber,0,Green);

Вы не можете покупать по цене спроса.

 

@Michel :

Боже мой... какая я глупая...

спасибо...

 

Помогите с живой изгородью

Привет всем!

Я использовал конструктор советников на sufx.com для создания советника. У него есть два ограничения, от которых я пытаюсь избавиться:

1. открывает только 1 сделку за раз. Я могу заставить его открыть две сделки одновременно, но я не могу заставить его открыть ордер на покупку и ордер на продажу одновременно.

2. кажется, что ордера на продажу предпочтительнее ордеров на покупку. Это не было бы проблемой, если бы проблема номер 1 была решена.

Вот фрагмент кода, который, похоже, задерживает меня:

//Check position

bool IsTrade = False;

for (int i = 0; i < Total; i ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

IsTrade = True;

if (OrderType() == OP_BUY) {

//Close

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

Спасибо за помощь,

Бенджиманг

 

Прибыль/убыток от валюты

Дэйв,

Я думаю, вам нужно быть более конкретным в том, что вы просите. И BTW, почему вы не отвечаете на сообщения PM? Где ты прячешься в эти дни????? lol

П в КС

 
FX4$$$:
Дэйв,

Я думаю, вам нужно быть более конкретным в том, что вы просите. И BTW, почему вы не отвечаете на сообщения PM? Где вы прячетесь в эти дни???? lol

П в КС

Я не получал никаких новых PM's???? К сожалению, в это время у меня случилась чрезвычайная ситуация в семье - с ней все в порядке. Я все еще мог бы использовать помощь по моему кодированию, особенно кодированию конвертов.

Дэйв

 

Как разместить прибыль валюты в правом верхнем углу графика?

Я хотел бы разместить прибыль/убыток валюты в правом верхнем углу графика валюты торговой платформы (EURUSD). Если прибыль по текущей сделке положительная, она будет отображаться зеленым цветом; если она равна 0.00, она будет отображаться белым цветом; если это убыток, он будет отображаться красным цветом.

Я знаю, что ObjectCreate - это то, что нужно, но помимо этого я не знаю, как захватить прибыль с торговой площадки? Может ли кто-нибудь помочь мне с этой утилитой? Я хочу включить это в свою программу.

Спасибо!

Дэйв

<<<
 

торговая статистика

используйте этот код:

// ***************************************************************************

int stats()

{

int i, vOrders;

// текущая прибыль CP

vOrders = OrdersTotal();

Profit = 0;

PipsProfit = 0;

for(i=vOrders-1;i>=0;i--)

{

if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if(OrderSymbol() == Symbol())

{

Profit += OrderProfit();

if (OrderType() == OP_BUY) PipsProfit += ((Bid - OrderOpenPrice())/Point);

else if (OrderType() == OP_SELL) PipsProfit += ((OrderOpenPrice() - Ask)/Point);

}

}

}

// потенциальный риск

// максимальные позиции

}

Profit & PipsProfit нужно будет объявить вне программы, а затем вывести на экран с помощью вашего любимого метода. Комментарии, если ничего другого нет.

Марк

Причина обращения: