EAを書くのを手伝ってください、ありがとうございます。 - ページ 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.この場合、ロットを増やします ああああ、わかったよ、ありがとう。 [Deleted] 2012.05.25 11:18 #134 emonh: ああああ、わかったよ、ありがとう。)))ギズモをたくさん入れなければいけなかったので・・・))) edikjefimov 2012.05.25 11:18 #135 デモで試したところ)シート0.02の代わりにペンディングバウ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: )))パソコンに色々な修羅場を入れてしまった......)))) すみません、何を入れたらいいんですか? emonh 2012.05.25 11:26 #140 Lucas_SPb: )))何を試したんだ?フクロウをチャートに? おまえはだれだ 1...789101112131415161718192021...24 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
1.ジグザグを確認する(インデントの最下点を見つけることも加えられるが)
2.買い注文を出す
3.同時に売り注文を出す
4.売り注文がトリガーされたら、買い注文を出す、など。
5.この場合、ロットを増やします
ああああ、わかったよ、ありがとう。
ああああ、わかったよ、ありがとう。
)))パソコンに色々な修羅場を入れてしまった......))))
すみません、何を入れたらいいんですか?
)))何を試したんだ?フクロウをチャートに?
おまえはだれだ