Скачать MetaTrader 5

Нужна консультация по настройке советника!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как заработать на MQL5.community? Зайди и узнай!
Евгений
36
Евгений 2010.10.20 11:36 
Дело в том что они у меня торги ведeут наоборот допустим: когда нужно покупать(buy) они почему то продают(sell) и наоборот, когда нужно продавать(sell) они покупают(buy) и из за этого я теряю приличные суммы! Мне нужно что бы он делал как надо! В MetaTrader 4 у меня торгуют сразу два советника на 4 графиках
hasayama
610
hasayama 2010.10.20 12:53  
Либо выкладывайте код, либо вызывайте телепатическую бригаду.
Igor Volodin
3797
Igor Volodin 2010.10.20 16:24  
Evgenik20:
Мне нужно что бы он делал как надо!
Хнык, хнык, ну скажите емуу...
Vladyslav Goshkov
2068
Vladyslav Goshkov 2010.10.20 17:21  
Evgenik20:
Мне нужно что бы он делал как надо!
Испытаный способ (кроме бригады телепатов) : наручники + батарея + бейсбольная бита - и заставите работать их ( Ваших советников ? ) как Вам надо .... при правильном подходе даже алгоритм работы советника иметь значения не будет.....
Victor Nikolaev
Модератор
14506
Victor Nikolaev 2010.10.20 17:25  
VladislavVG:
Испытаный способ (кроме бригады телепатов) : наручники + батарея + бейсбольная бита - и заставите работать их ( Ваших советников ? ) как Вам надо .... при правильном подходе даже алгоритм работы советника иметь значения не будет.....

А утюг?
Vladyslav Goshkov
2068
Vladyslav Goshkov 2010.10.20 17:49  
Vinin:

А утюг?
Точно.... еще и паяльник... забыл .... ))))))
Aleksandr Chugunov
4817
Aleksandr Chugunov 2010.10.22 10:52  

паяльник в нужное место намного эффективнее....

Евгений
36
Евгений 2010.10.22 10:53  
AlexSTAL:

паяльник в нужное место намного эффективнее....


Клоуны
Aleksandr Chugunov
4817
Aleksandr Chugunov 2010.10.22 10:55  
Evgenik20:

Клоуны
Ваши вопросы (и из второй ветки) заставляют пятничные ветки вверх поднимать
Виктор
Модератор
6559
Виктор 2010.10.22 10:58  
Evgenik20:
Клоуны
Вы сами провоцируете флуд невнятными вопросами. Если действительно есть проблема, публикуйте код и подробно излагайте проблему, тогда Вам помогут.
Евгений
36
Евгений 2010.10.22 11:13  
granit77:
Вы сами провоцируете флуд невнятными вопросами. Если действительно есть проблема, публикуйте код и подробно излагайте проблему, тогда Вам помогут.

КОД ВОТ:

extern int timeframe = 60;
extern double stopLoss = 50;
extern double lTakeProfit = 20;
extern double sTakeProfit = 20;
extern double lTrailingStop = 15;
extern double sTrailingStop = 15;
extern color clOpenBuy = Blue;
extern color clCloseBuy = Aqua;
extern color clOpenSell = Red;
extern color clCloseSell = Violet;
extern color clModiBuy = Blue;
extern color clModiSell = Red;
extern string Name_Expert = "my 100pip v1";
extern int Slippage = 2;
extern bool UseSound = True;
extern string NameFileSound = "shotgun.wav";
extern double Lots = 1;


void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start(){
if(Bars<100){
Print("bars less than 100");
return(0);
}
if(lTakeProfit<10){
Print("TakeProfit less than 10");
return(0);
}
if(sTakeProfit<10){
Print("TakeProfit less than 10");
return(0);
}

double diClose0=iClose(NULL,5,0);
double diMA1=iMA(NULL,5,7,0,MODE_SMA,PRICE_OPEN,0);
double diClose2=iClose(NULL,5,0);
double diMA3=iMA(NULL,5,6,0,MODE_SMA,PRICE_OPEN,0);

if(AccountFreeMargin()<(1000*Lots)){
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (!ExistPositions()){

if ((diClose0<diMA1)){
OpenBuy();
return(0);
}

if ((diClose2>diMA3)){
OpenSell();
return(0);
}
}
TrailingPositionsBuy(lTrailingStop);
TrailingPositionsSell(sTrailingStop);
return (0);
}

bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
return(True);
}
}
}
return(false);
}
void TrailingPositionsBuy(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY) {
if (Bid-OrderOpenPrice()>trailingStop*Point) {
if (OrderStopLoss()<Bid-trailingStop*Point)
ModifyStopLoss(Bid-trailingStop*Point);
}
}
}
}
}
}
void TrailingPositionsSell(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>trailingStop*Point) {
if (OrderStopLoss()>Ask+trailingStop*Point ||
OrderStopLoss()==50)
ModifyStopLoss(Ask+trailingStop*Point);
}
}
}
}
}
}
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm = OrderModify(OrderTicket(),OrderOpenPrice
(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}

void OpenBuy() {
double ldLot, ldStop, ldTake;
string lsComm;
ldLot = GetSizeLot();
ldStop = 0;
ldTake = GetTakeProfitBuy();
lsComm = GetCommentForOrder();
OrderSend(Symbol
(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,0,0,clOpenBuy);
if (UseSound) PlaySound(NameFileSound);
}
void OpenSell() {
double ldLot, ldStop, ldTake;
string lsComm;

ldLot = GetSizeLot();
ldStop = 0;
ldTake = GetTakeProfitSell();
lsComm = GetCommentForOrder();
OrderSend(Symbol
(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,0,0,clOpenSell);
if (UseSound) PlaySound(NameFileSound);
}
string GetCommentForOrder() { return(Name_Expert); }
double GetSizeLot() { return(Lots); }
double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); }

double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); }


ПРОБЛЕМУ ОБЪЯСНИЛ ВЫШЕ!


12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий