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

 
:: что с ним не так? Только для EURUSD? Он выглядит так же, как и другой?
LazyForex:
Ха... Вы можете использовать ту же клавишу на клавиатуре, чтобы это тоже работало? Ваше здоровье!
 
IN10TION:
:: Что с ним не так? Только для EURUSD? Он выглядит так же, как и другой?

Такая же проблема. Работает на бэктесте, но не на форвард-тесте. Никакие сделки не исполняются... Вы можете помочь?

 
IN10TION:
:: он также был настроен на работу только на EURUSD, я переключил это на & другое ограничение... ага... тот же ключ....

Кстати, я должен изменить другой...

Я видел кое-что еще, что я могу сделать... ага... тот же ключ.

..

поделитесь результатом, хорошо?

(или напишите мне) хотелось бы узнать

IN10TION

Ваша клавиатура продается?

Спасибо миллион пипсов. Буду держать вас в курсе...

 
:: использовал еще несколько ключей для этого... но вы можете использовать его для других валют также, был установлен только для EURUSD... не знаю почему, вы будете знать лучше, я надеюсь
 
:: он также был настроен на работу только на EURUSD, я отключил это и другое ограничение... ага... тот же ключ...

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

поделитесь результатом? (или напишите мне) хотелось бы знать

IN10TION

LazyForex:
Та же проблема. Работает на бэктесте, но не на форвард-тесте. Никакие сделки не исполняются... Вы можете помочь?
 

Большое спасибо за советы. Я выяснил, что в большинстве ситуаций (может быть, во всех?) в начале самого нового бара есть тик, поэтому я могу торговать с открытой ценой. Это не идеально, но (как было сказано выше) разница между ценой закрытия и ценой открытия довольно мала.

 

Какое значение возвращает функция iTime? Это дата начала бара? В инструкции написано только "Возвращает значение времени для бара указанного символа с таймфреймом и сдвигом.".

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

 
:: Да, начало бара
mellda:
Какое значение возвращает функция iTime? Это дата начала бара? В руководстве написано только "Возвращает значение времени для бара указанного символа с таймфреймом и сдвигом." Заранее спасибо за ответ.
 
IN10TION:
:: использовал несколько дополнительных ключей для этого... но вы можете использовать его для других валют также, был установлен только для EURUSD... не знаю почему, вы будете знать лучше, я надеюсь

Привет, IN10TION,

Отправил тебе сообщение...

 

Нужен советник для закрытия ВСЕХ ордеров при достижении прибыли

Здравствуйте, просто интересно, может ли кто-то из вас, великие кодеры, просто добавить в код, чтобы закрыть ВСЕ ордера, как только g_MinProfit и f_MinProfit достигнут. Я обнаружил, что когда прибыль достигнута, остаются остатки ордеров Buy/Sell Stop/Limit, и я хотел бы, чтобы они были удалены, как только сработает profit min.

Спасибо

extern bool g_CLOSE_ALL=false;

extern bool g_RESTART=true;

extern int g_Step=120;

extern double g_FirstLot=0.1;

extern double g_IncLot=0;

extern double g_MinProfit=450;

extern int g_Magic = 2008;

extern string g_comment="Win";

extern bool f_CLOSE_ALL=false;

extern bool f_RESTART=true;

extern int f_Step=120;

extern double f_FirstLot=0.1;

extern double f_IncLot=0;

extern double f_MinProfit=450;

extern int f_Magic = 2009;

extern string f_comment="REV";

int GOrder_Buy=0;

int GOrder_Sell=0;

double GLotSell=0;

double GLotBuy=0;

double gLotSell=0;

double gLotBuy=0;

double gLSP,gLBP;

double gCurrentProfit;

int FOrder_Buy=0;

int FOrder_Sell=0;

double FLotSell=0;

double FLotBuy=0;

double fLotSell=0;

double fLotBuy=0;

double fLSP,fLBP;

double fCurrentProfit;

double max_dd;

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int init()

{

Comment("Waddah Attar Win TradeBalancer 1");

if(!GlobalVariableCheck("max_DD")) GlobalVariableSet("max_DD",0);

return(0);

}

int deinit()

{

Comment("");

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int start()

{

gCurrentProfit=GetOrdersProfit(g_Magic);

if (gCurrentProfit>=g_MinProfit || g_CLOSE_ALL)

{

DeletePendingOrders(g_Magic);

CloseOrders(g_Magic);

}

if (MyOrdersTotal(g_Magic)==0 && g_RESTART)

{

OrderSend(Symbol(),OP_BUYLIMIT,g_FirstLot,Ask-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLLIMIT,g_FirstLot,Bid+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

gLSP=GetLastSellPrice(g_Magic);

gLBP=GetLastBuyPrice(g_Magic);

if((gLSP-Bid)<=5*Point)

{

OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+g_IncLot,gLSP+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

if((Ask-gLBP)<=5*Point)

{

OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+g_IncLot,gLBP-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

}

//--------------------------------------------------------------------------------------------

fCurrentProfit=GetOrdersProfit(f_Magic);

if (fCurrentProfit>=f_MinProfit || f_CLOSE_ALL)

{

DeletePendingOrders(f_Magic);

CloseOrders(f_Magic);

}

if (MyOrdersTotal(f_Magic)==0 && f_RESTART)

{

OrderSend(Symbol(),OP_BUYSTOP,f_FirstLot,Ask+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLSTOP,f_FirstLot,Bid-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

fLSP=GetLastSellPrice(f_Magic);

fLBP=GetLastBuyPrice(f_Magic);

if((Bid-fLSP)<=5*Point)

{

OrderSend(Symbol(),OP_SELLSTOP,fLotSell+f_IncLot,fLSP-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

if((fLBP-Ask)<=5*Point)

{

OrderSend(Symbol(),OP_BUYSTOP,fLotBuy+f_IncLot,fLBP+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

}

//--------------------------------------------------------------------------------------------

//max_dd=

//--------------------------------------------------------------------------------------------

Comment("Waddah Attar Win TradeBalancer 1",

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(gCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(GLotBuy,2) + " / " + GOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(GLotSell,2) + " / " + GOrder_Sell,

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(fCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(FLotBuy,2) + " / " + FOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(FLotSell,2) + " / " + FOrder_Sell);

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int DeletePendingOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY && OrderType()!=OP_SELL))

{

OrderDelete(OrderTicket());

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int CloseOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);

}

if (OrderType()==OP_SELL)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

}

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int MyOrdersTotal(int Magic)

{

int c=0;

int total = OrdersTotal();

if(Magic==g_Magic) { GLotBuy=0; GLotSell=0; GOrder_Buy=0; GOrder_Sell=0; }

if(Magic==f_Magic) { FLotBuy=0; FLotSell=0; FOrder_Buy=0; FOrder_Sell=0; }

for (int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if(Magic==g_Magic)

{

if(OrderType()==OP_BUY) { GLotBuy=GLotBuy+OrderLots(); GOrder_Buy++; }

if(OrderType()==OP_SELL) { GLotSell=GLotSell+OrderLots(); GOrder_Sell++; }

}

if(Magic==f_Magic)

{

if(OrderType()==OP_BUY) { FLotBuy=FLotBuy+OrderLots(); FOrder_Buy++; }

if(OrderType()==OP_SELL) { FLotSell=FLotSell+OrderLots(); FOrder_Sell++; }

}

c++;

}

}

return(c);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUY))

{

if(Magic==g_Magic) gLotBuy=OrderLots();

if(Magic==f_Magic) fLotBuy=OrderLots();

return(OrderOpenPrice());

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetLastSellPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELL))

{

if(Magic==g_Magic) gLotSell=OrderLots();

if(Magic==f_Magic) fLotSell=OrderLots();

return(OrderOpenPrice());

}

}

return(100000);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetOrdersProfit(int Magic)

{

double eProfit=0;

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))

{

eProfit=eProfit+OrderProfit();

}

}

return(eProfit);

}

//--------------------------------------------------------------------------------------------

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