Приветствую! Уважаемые программисты и те кто владеют языком написания советников, у меня есть советник, но в него нужно внести небольшое дополнение, - чтобы он совершал сделку после закрытия бара, но сам я такое дополнение сделать не могу т.к. не владею программированием(((. может быть кто то возьмётся помочь?
Чей труд?
1. На форуме не принято коды в таком виде выкладывать.
2. Если хотите выложить код, воспользуйтесь кнопкой SRC
3. Если вам реально нужна помощь - вам сюда
3 Неверно.
Если реально нужна помощь - то ее здесь, на этом форуме, окажут бесплатно. Только есть разница в понятиях "нужна помощь" и "сделайте работу за меня". Вот во втором случае - действительно туда, куда Вы направили.
А помощь - это когда человек что-то пытается сам сделать, в чем-то самостоятельно разобраться и что-то то ли не понял, то ли просто пока не получается. А вот если даже не пытается, то или к "букварям" и документации - может все-таки начнет делать сам, или в отдел работа - это если лень все-таки сильнее или просто нет желания учиться.
Надеюсь, разницу пояснил доступно.
...Надеюсь, разницу пояснил доступно.
Нам доступно. Но вряд ли новички этим проникаются. К сожалению.
3 Неверно.
Если реально нужна помощь - то ее здесь, на этом форуме, окажут бесплатно. Только есть разница в понятиях "нужна помощь" и "сделайте работу за меня". Вот во втором случае - действительно туда, куда Вы направили.
А помощь - это когда человек что-то пытается сам сделать, в чем-то самостоятельно разобраться и что-то то ли не понял, то ли просто пока не получается. А вот если даже не пытается, то или к "букварям" и документации - может все-таки начнет делать сам, или в отдел работа - это если лень все-таки сильнее или просто нет желания учиться.
Надеюсь, разницу пояснил доступно.
да, спасибо, вполне доступно))) я воспользовался ссылкой указанной выше, спасибо всем кто откликнулся
3 Неверно.
Если реально нужна помощь - то ее здесь, на этом форуме, окажут бесплатно. Только есть разница в понятиях "нужна помощь" и "сделайте работу за меня". Вот во втором случае - действительно туда, куда Вы направили.
А помощь - это когда человек что-то пытается сам сделать, в чем-то самостоятельно разобраться и что-то то ли не понял, то ли просто пока не получается. А вот если даже не пытается, то или к "букварям" и документации - может все-таки начнет делать сам, или в отдел работа - это если лень все-таки сильнее или просто нет желания учиться.
Надеюсь, разницу пояснил доступно.
Согласен, 3 нужно было развернуть, я же написал исходя из контекста.
в принципе в советнике это всё уже сделано, но есть незначительная ошибка, но я её не вижу и хотел чтобы вы глянули "свежим взглядом" и подсказали в чём она.... не думал что это настолько сложная просьба))) для профи. или у профи не бывает 1-2 лишних минут?)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую! Уважаемые программисты и те кто владеют языком написания советников, у меня есть советник, но в него нужно внести небольшое дополнение, - чтобы он совершал сделку после закрытия бара, но сам я такое дополнение сделать не могу т.к. не владею программированием(((. может быть кто то возьмётся помочь?
extern int Correlyciya= 50;
extern int TakeProfit = 300;
extern double Lot = 0.1;
extern double Procent =1.3;
extern bool Martin = true;
extern int Slip=2;
extern int Magic=1;
int start()
{
int New_Time=0;
bool New_Bar=false; // ?????? ???? ???
if(New_Time!=Time[0]) { // ?????????? ?????
New_Time=Time[0]; // ?????? ????? ?????
New_Bar=true;} // ???????? ????? ???
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
ObjectCreate("R",OBJ_LABEL,0,0,0);
ObjectSet("R",OBJPROP_CORNER,2);
ObjectSet("R",OBJPROP_XDISTANCE,10);
ObjectSet("R",OBJPROP_YDISTANCE,10);
ObjectSetText("R","rus-xxx",10,"Arial",Red);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
double opB=2000; double opS=0; double orderProfitbuy=0; double Sum_Profitbuy=0; double orderProfitsel; double Sum_Profitsel; int orderType;
double LotB=Lot;
double LotS=Lot;
int total=OrdersTotal();
int b=0,s=0,n=0;
for(int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol() )
{
n++;
if(OrderType()==OP_BUY && OrderMagicNumber()==Magic)
{
b++;
LotB=OrderLots();
int tikketB=OrderTicket(); double ProfitB=OrderTakeProfit(); double openB=OrderOpenPrice();
if(openB<opB)
{opB=openB;}
}
//---------------------------------
if(OrderType()==OP_SELL && OrderMagicNumber()==Magic)
{
s++;
LotS=OrderLots();
int tikketS=OrderTicket(); double ProfitS=OrderTakeProfit(); double openS=OrderOpenPrice();
if(openS>opS)
{opS=openS;}
}
}
}
}
double max = NormalizeDouble(iHigh(Symbol(),1440,0),Digits);
double min = NormalizeDouble(iLow (Symbol(),1440,0),Digits);
double opp=NormalizeDouble(iOpen(Symbol(),1440,0),Digits);
double cl=NormalizeDouble(iClose(Symbol(),1440,0),Digits);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
if(cl>min)
{
double x=NormalizeDouble(cl*100/min-100,2);
}
//--------------
if(cl<max)
{
double y=NormalizeDouble(cl*100/max-100,2);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
double dis =NormalizeDouble(TakeProfit*Point,Digits);
double spred =NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits);
double CORR=NormalizeDouble(Correlyciya *Point,Digits);
if(Martin==true)
{
if(n>=1){for(int P=100; P>=0; P--)
{
if(n==P&&n>=1) {LotB=LotB*P;}
if(n==P&&n>=1) {LotS=LotS*P;}
}
}
}
if(Martin==false)
{
if(b==1||s==1) {LotB=LotS*1;LotS=LotB*1;}
if(b==2||s==2) {LotS=LotS*1;LotB=LotB*1;}
if(b==3||s==3) {LotS=LotS*1;LotB=LotB*1;}
if(b==4||s==4) {LotB=LotS*3;LotS=LotB*3;}
if(b==5||s==5) {LotS=LotS*3;LotB=LotB*3;}
if(b==6||s==6) {LotS=LotS*3;LotB=LotB*3;}
if(b==7||s==7) {LotB=LotS*6;LotS=LotB*6;}
if(b==8||s==8) {LotS=LotS*6;LotB=LotB*6;}
if(b==9||s==9) {LotS=LotS*6;LotB=LotB*6;}
}
if((b==0&&Procent*(-1)<=y&&s==0&&Close[1]>Open[1]&&New_Bar==true)||(Ask<opB-dis-spred&&b>=1&&s==0&&New_Bar==true)) { OrderSend(Symbol(),OP_BUY ,LotB,Ask,Slip,0,0,"BUY",Magic,0,Green); }
if((s==0&&Procent >=x&&b==0&&Close[1]<Open[1]&&New_Bar==true)||(Bid>opS+dis-spred&&s>=1&&b==0&&New_Bar==true)) { OrderSend(Symbol(),OP_SELL,LotS,Bid,Slip,0,0,"SEL",Magic,0,Green); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
double TPB= NormalizeDouble (openB+spred+TakeProfit*Point,Digits);
double TPS= NormalizeDouble (openS+spred-TakeProfit*Point,Digits);
if(ProfitB==0&&b>=1) { OrderModify(tikketB,openB, OrderStopLoss(),TPB, 0,Blue); }
if(ProfitS==0&&s>=1) { OrderModify(tikketS,openS, OrderStopLoss(),TPS, 0,Blue); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
double nn=0,bb=0;
for(int ui=total-1; ui>=0; ui--)
{
if(OrderSelect(ui,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY && OrderMagicNumber()==Magic)
{
double op=OrderOpenPrice();
double llot=OrderLots();
double itog=op*llot;
bb=bb+itog;
nn=nn+llot;
double factb=bb/nn;
}
}
}
}
double nnn=0,bbb=0;
for(int usi=total-1; usi>=0; usi--)
{
if(OrderSelect(usi,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_SELL && OrderMagicNumber()==Magic)
{
double ops=OrderOpenPrice();
double llots=OrderLots();
double itogs=ops*llots;
bbb=bbb+itogs;
nnn=nnn+llots;
double facts=bbb/nnn;
}
}
}
}
for(int uui=total-1; uui>=0; uui--)
{
if(OrderSelect(uui,SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
if(b>=2 && OrderType()==OP_BUY && OrderMagicNumber()==Magic)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),factb+CORR,0,Blue);
}
if(s>=2 && OrderType()==OP_SELL && OrderMagicNumber()==Magic)
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),facts-CORR,0,Blue);
}
}
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
}
//+------------------------------------------------------------------+