조언자를 작성하는 데 도움이됩니다. 미리 감사드립니다. - 페이지 14 1...789101112131415161718192021...24 새 코멘트 [Deleted] 2012.05.25 11:16 #131 //+------------------------------------------------------------------+ //| Канал.mq4 | //| Copyright © 2011, Лукас | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, Лукас" #property link "http://www.metaquotes.net" extern int magicnumber = 1210; extern double Nach_Lot = 0.05; extern int SL_BUY = 500; extern int TP_BUY = 700; extern int Shirina_Kanala_STOP = 200; //int SL_SELL = 400; //int TP_SELL = 400; double Lot,Lot_BUY,Lot_SELL,Min_Lot; string TF,Metka; int Ticket_Open_BUYSTOP, Ticket_Open_SELLSTOP,Ticket_Open_BUY,Ticket_Open_SELL; double Cena_Otkr_BUY,Cena_Otkr_SELL,TP_Otkr_BUY,SL_Otkr_BUY,TP_Otkr_SELL,SL_Otkr_SELL; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { Lot=Nach_Lot; Lot_BUY=Nach_Lot; Lot_SELL=Nach_Lot; Min_Lot =MarketInfo(Symbol(), MODE_MINLOT); //StopLevel = ND(MarketInfo(Symbol(), MODE_STOPLEVEL)*Point); return(0); } //***********************************************************************************************************************************// // Функция деинициализации советника-------------------------------------------------------------------------------------------------// //***********************************************************************************************************************************// int deinit() { return(0); } // Окончание функции деинициализации советника---------------------------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция старта советника----------------------------------------------------------------------------------------------------------// //***********************************************************************************************************************************// int start() { Metka=Symbol()+"-''Канал(v.1.0)''"; double ZigZag_0=iCustom(NULL, 0, "ZigZag",12,5,3,1,0); double ZigZag_1=iCustom(NULL, 0, "ZigZag",12,5,3,1,1); if((CalculateCurrentOrders_STOP(Symbol())==1)&&(CalculateCurrentOrders_OPEN(Symbol())==0)) { Close_Order_BUYSTOP(); Close_Order_SELLSTOP(); } if (ZigZag_0>ZigZag_1) { if((CalculateCurrentOrders_STOP(Symbol())==0)&&(CalculateCurrentOrders_OPEN(Symbol())==0)) { Lot_BUY=Nach_Lot; Ticket_Open_BUY=OrderSend(Symbol(),OP_BUY,Lot_BUY,Ask,3,ND(Bid-SL_BUY*Point),ND(Ask+TP_BUY*Point),Metka,magicnumber,0,Green); Cena_Otkr_BUY=ND(Ask); TP_Otkr_BUY=ND(Ask+TP_BUY*Point); SL_Otkr_BUY=ND(Bid-SL_BUY*Point); TP_Otkr_SELL=SL_Otkr_BUY; SL_Otkr_SELL=TP_Otkr_BUY; Cena_Otkr_SELL=ND(Ask-Shirina_Kanala_STOP*Point); Lot_SELL=Nach_Lot*2; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } } if((CalculateCurrentOrders_STOP(Symbol())==0)&&(CalculateCurrentOrders_OPEN(Symbol())==1)) { Lot_BUY=Nach_Lot*4; Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Otkr_BUY,3,SL_Otkr_BUY,TP_Otkr_BUY,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==1)&&(CalculateCurrentOrders_BUY(Symbol())==2)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_SELL=Nach_Lot*8; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==2)&&(CalculateCurrentOrders_BUY(Symbol())==2)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_BUY=Nach_Lot*16; Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Otkr_BUY,3,SL_Otkr_BUY,TP_Otkr_BUY,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==2)&&(CalculateCurrentOrders_BUY(Symbol())==3)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_SELL=Nach_Lot*32; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==3)&&(CalculateCurrentOrders_BUY(Symbol())==3)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_BUY=Nach_Lot*64; Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Otkr_BUY,3,SL_Otkr_BUY,TP_Otkr_BUY,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==3)&&(CalculateCurrentOrders_BUY(Symbol())==4)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_SELL=Nach_Lot*128; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==4)&&(CalculateCurrentOrders_BUY(Symbol())==4)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_BUY=Nach_Lot*256; Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Otkr_BUY,3,SL_Otkr_BUY,TP_Otkr_BUY,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==4)&&(CalculateCurrentOrders_BUY(Symbol())==5)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_SELL=Nach_Lot*512; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==5)&&(CalculateCurrentOrders_BUY(Symbol())==5)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_BUY=Nach_Lot*1024; Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Otkr_BUY,3,SL_Otkr_BUY,TP_Otkr_BUY,Metka,magicnumber,0,Blue); } if((CalculateCurrentOrders_SELL(Symbol())==5)&&(CalculateCurrentOrders_BUY(Symbol())==6)&&(CalculateCurrentOrders_STOP(Symbol())==0)) { Lot_SELL=Nach_Lot*2048; Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Otkr_SELL,3,SL_Otkr_SELL,TP_Otkr_SELL,Metka,magicnumber,0,Blue); } /* if((CalculateCurrentOrders_STOP(Symbol())==0)&&(CalculateCurrentOrders_OPEN(Symbol())==0)) { if (Key_BUY==true) Ticket_Open_BUYSTOP=OrderSend(Symbol(),OP_BUYSTOP,Lot_BUY,Cena_Buy,3,SL_Buy,TP_Buy1,Metka,magicnumber,0,Blue); if (Key_SELL==true) Ticket_Open_SELLSTOP=OrderSend(Symbol(),OP_SELLSTOP,Lot_SELL,Cena_Sell,3,SL_Sell,TP_Sell1,Metka,magicnumber,0,Blue); } */ return(0); } // Окончание функции старта советника------------------------------------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция определения количества отложенных стоп ордеров ---------------------------------------------------------------------------// //***********************************************************************************************************************************// int CalculateCurrentOrders_STOP(string symbol) { int buys=0,sells=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==magicnumber) { if(OrderType()==OP_BUYSTOP) buys++; if(OrderType()==OP_SELLSTOP) sells++; } } return(buys+sells); } // Окончание функции определения количества отложенных стоп ордеров------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция определения количества открытых ордеров ----------------------------------------------------------------------------------// //***********************************************************************************************************************************// int CalculateCurrentOrders_OPEN(string symbol) { int buys=0,sells=0; //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==magicnumber) { if(OrderType()==OP_BUY) buys++; if(OrderType()==OP_SELL) sells++; } } //---- return orders volume if(buys>0) return(buys); else return(-sells); } // Окончание функции определения количества открытых ордеров--------------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция определения количества открытых ордеров BUY ------------------------------------------------------------------------------// //***********************************************************************************************************************************// int CalculateCurrentOrders_BUY(string symbol) { int buys_b=0,sells_b=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==magicnumber) { if(OrderType()==OP_BUY) buys_b++; } } if(buys_b>0) return(buys_b); else return(-sells_b); } // Окончание функции определения количества открытых ордеров BUY --------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция определения количества открытых ордеров SELL -----------------------------------------------------------------------------// //***********************************************************************************************************************************// int CalculateCurrentOrders_SELL(string symbol) { int buys_s=0,sells_s=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==magicnumber) { if(OrderType()==OP_SELL) sells_s++; } } if(sells_s>0) return(sells_s); else return(-buys_s); } // Окончание функции определения количества открытых ордеров SELL -------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция приведения значений к точности одного тика -------------------------------------------------------------------------------// //***********************************************************************************************************************************// double ND(double A) { return(NormalizeDouble(A, Digits)); } // Окончание функции приведения значений к точности одного тика ---------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция закрытия ордера BUYSTOP --------------------------------------------------------------------------------------------------// //***********************************************************************************************************************************// void Close_Order_BUYSTOP() { for(int f=0;f<OrdersTotal();f++) { if(OrderSelect(f,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=magicnumber || OrderSymbol()!=Symbol()) continue; if(OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket()); } } // Окончание функции закрытия ордера BUYSTOP ---------------------------------------------------------------------------------------// //***********************************************************************************************************************************// // Функция закрытия ордера SELLSTOP -------------------------------------------------------------------------------------------------// //***********************************************************************************************************************************// void Close_Order_SELLSTOP() { for(int f=0;f<OrdersTotal();f++) { if(OrderSelect(f,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderMagicNumber()!=magicnumber || OrderSymbol()!=Symbol()) continue; if(OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket()); } } // Окончание функции закрытия ордера SELLSTOP --------------------------------------------------------------------------------------// Vitalie Postolache 2012.05.25 11:16 #132 글쎄요, 코드에서 리미터를 설정할 수 있습니다. 예를 들어 50랏을 말한 다음 일정한 로트로 장난을 칠 수 있습니다. emonh 2012.05.25 11:17 #133 Lucas_SPb : 1. 지그재그 확인 2. 구매 주문 열기 3. 우리는 동시에 판매 지연을 설정합니다. 4.판매지연시 구매지연 등을 설정합니다. 5. 동시에, 우리는 많은 Aaaaaa, 이해합니다. 감사합니다. 이제 모든 틱을 켤 때 컴퓨터가 멈추는 문제의 테스트를 통해서만 더 쉬울 것입니다. [Deleted] 2012.05.25 11:18 #134 emonh : Aaaaaa, 이해합니다. 감사합니다. 이제 모든 틱을 켤 때 컴퓨터가 멈추는 문제의 테스트를 통해서만 더 쉬울 것입니다. ))) 나는 많은 shaneshkas를 컴퓨터에 넣어야 했다....)))) edikjefimov 2012.05.25 11:18 #135 데모에서 시도)) 오류가 발생했습니다. 마을 0.02 대신 bau 0.04 지연을 열었습니다. edikjefimov 2012.05.25 11:20 #136 이렇게 되어야 한다 edikjefimov 2012.05.25 11:20 #137 [Deleted] 2012.05.25 11:21 #138 ))) 그리고 무엇을 시도 했습니까 ??? 차트에 올빼미를 넣어? emonh 2012.05.25 11:25 #139 Lucas_SPb : ))) 나는 많은 shaneshkas를 컴퓨터에 넣어야 했다....)))) 죄송합니다, 무엇을 투자해야합니까? emonh 2012.05.25 11:26 #140 Lucas_SPb : ))) 그리고 무엇을 시도 했습니까 ??? 차트에 올빼미를 넣어? 너 누구 랑 대화하고있어? 1...789101112131415161718192021...24 새 코멘트
1. 지그재그 확인
2. 구매 주문 열기
3. 우리는 동시에 판매 지연을 설정합니다.
4.판매지연시 구매지연 등을 설정합니다.
5. 동시에, 우리는 많은
Aaaaaa, 이해합니다. 감사합니다. 이제 모든 틱을 켤 때 컴퓨터가 멈추는 문제의 테스트를 통해서만 더 쉬울 것입니다.
Aaaaaa, 이해합니다. 감사합니다. 이제 모든 틱을 켤 때 컴퓨터가 멈추는 문제의 테스트를 통해서만 더 쉬울 것입니다.
))) 나는 많은 shaneshkas를 컴퓨터에 넣어야 했다....))))
죄송합니다, 무엇을 투자해야합니까?
))) 그리고 무엇을 시도 했습니까 ??? 차트에 올빼미를 넣어?
너 누구 랑 대화하고있어?