//+------------------------------------------------------------------+ //| RndTrade.mq4 | //| Copyright © 2008 Grib | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008 Grib" #property link "" #define NUM_BUY 20050611 #define NUM_SELL 20050612 int ticket; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(OrdersTotal() == 0) { checkForOpen(); } else { checkForClose(); } //---- return(0); } //+------------------------------------------------------------------+ //| Проверка на открытие позиции | //+------------------------------------------------------------------+ void checkForOpen() { int a = 0; MathSrand(TimeLocal()); // Отображает 10 чисел. for(int i=0;i<10;i++ ) if(i==5) { a = MathRand(); if(a > 16383.5) { // Совершаем покупку ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"TestDrawSell",NUM_BUY); if (ticket == -1) Alert("Ошибка при совершении операции покупки"); } else { //Совершаем продажу ticket = OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"TestDrawBuy",NUM_SELL); if (ticket == -1) Alert("Ошибка при совершении операции продажи"); } } else { a = MathRand(); } } //+------------------------------------------------------------------+ //| Проверка на закрытие позиции | //+------------------------------------------------------------------+ void checkForClose() { if(OrderSelect(0, SELECT_BY_POS)==true) { if( (OrderOpenTime()+14400) < TimeLocal() ) if(OrderClose(OrderTicket(),1,Ask,3) == false) Print("Ошибка при закрытии позиции"); } else { Print("OrderSelect() вернул ошибку - ",GetLastError()); } } //+------------------------------------------------------------------+