新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 807

 

大家好!我坐在这里转着指标。我认为我做的一切都是对的。但问题是...在每个蜡烛上打开交易


专家顾问代码

// получение сигнала _________________________________________________________________________________________________________

int signal=-1。

如果(time_bar!=Time[0]){

time_bar=Time[0];

double stop_buy=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1)

double stop_sell=iCustom(Symb,0, "cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1)。

如果(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

double super_buy=iCustom(Symb,0, "xSuperTrend Tape MTF NRP",",",SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF,0,1);

如果(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0;

如果(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1;

}


指标代码


return(0);

}

//+------------------------------------------------------------------+

int start()

{

string NameFigur;

int counted_bars=IndicatorCounted()。

if(counted_bars<0) return(-1);

如果(counted_bars>0) counted_bars--。

int limit=Bars-counted_bars。

if(counted_bars==0) limit-=1+2;


for(int i=1; i<limit; i++)

{

bool up=false,down=false。

double MA0 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

double MA1 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i);

double MA2 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+1);

double MA3 = iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,i+2);


if(MA0>MA1 && MA1>MA2 && MA2>MA3) up=true。

否则up=false。

if(MA0<MA1 && MA1<MA2 && MA2<MA3) down=true;

否则down=false。

//---

NameFigur=";

如果(Close[i]>Close[i+1] && Close[i]>Open[i+1])

{

if(down && Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Close[i]<Open[i+1] && Close[i]>Open[i] )

{

NameFigur="BullHarami"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

if(Open[i+1]>Close[i+1] && Open[i]>Close[i+1] && Open[i]<Open[i+1] && Close[i]>Open[i+1] )

{

NameFigur="BullCross"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

if(Close[i+1]<Open[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1])

{

NameFigur="Bullish Engulfing"。

if(Close[i+1]<Open[i+1] && Close[i]>Open[i] && Open[i]<Close[i+1] && Close[i]>Close[i+1]+((Open[i+1]-Close[i+1])/2)

{

NameFigur="BullPierce"。

}

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur);

}

如果(Close[i+2]<Open[i+2] && Open[i+1]<Close[i+2] && Close[i+1]<Close[i+2] && Open[i]>Close[i+1] && Open[i]>Open[i+1] && Close[i]>=Close[i+2])

{

NameFigur="晨星"。

Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur); Redraw(i+2,colorBulls,NameFigur) 。

}

}

if(Open[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3 && Close[i]-Low[i]>MathMax(High[i]-Close[i],Close[i]-Open[i])*3)

{

NameFigur="Hammer"。

if(up) {Redraw(i,colorBulls,NameFigur); Redraw(i+1,colorBulls,NameFigur); }

if(down) {Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);}

}

///// bears ///// bears ///// bears ///// bears ///// bears ///// bears ///// bears ///// bears

如果(Close[i]<Close[i+1] && Close[i]<Open[i+1])

{

if(up& Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Close[i]>Open[i+1] && Close[i]<Open[i] )

{

NameFigur="BearHarami"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

if(Open[i+1]<Close[i+1] && Open[i]<Close[i+1] && Open[i]>Open[i+1] && Closed[i]<Open[i+1])

{

NameFigur="BearCross"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

if(Close[i+1]>Open[i+1] && Close[i]<Open[i] && Open[i]>Close[i+1] && Close[i]<Open[i+1] )

{

NameFigur="BearEngulf"。

如果(Close[i+1]>Open[i+1] && Open[i]>Close[i+1] && Close[i]<Close[i+1]-((Close[i+1]-Open[i+1])/2)

{

NameFigur="DarkCloud"。

}

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}


如果(Close[i+2]>Open[i+2] && Open[i+1]>Close[i+2] && Close[i+1]>Close[i+2] && Open[i]<Close[i+1] && Open[i]<Open[i+1] && Close[i]<Close[i+2])

{

NameFigur="EveningStar"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur); Redraw(i+2,colorBears,NameFigur)。

}

if(up && High[i]-Open[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3 && High[i]-Close[i]>MathMax(Close[i]-Low[i],Open[i]-Close[i])*3)

{

NameFigur="射手"。

Redraw(i,colorBears,NameFigur); Redraw(i+1,colorBears,NameFigur);

}

}

如果(NameFigur!="")

{

double DELTA=(MathMax(High[i],High[i+1])-MathMin(Low[i],Low[i+1]))/2。

if(Color==colorBears) {BufferDN[i]=MathMax(High[i],High[i+1]);P=BufferDN[i]+DELTA;}

否则 {BufferUP[i]=MathMin(Low[i],Low[i+1]);P=BufferUP[i]-DELTA; }

DrawTEXT(StringConcatenate(NameFigur," ",TimeToStr(Time[i],TIME_DATE|TIME_MINUTES)),NameFigur,Color,Time[i+1],P) 。

}

}

if(Timei!=Time[0] && AlertON && i==0 && NameFigur!="") {Alert(Symbol()+" FiguresCandle ="+NameFigur); Timei=Time[0];}

return(0);

}

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

void Redraw(int i,color col,string name)。

{

颜色=col;

if(!DrawCandle) 返回。

name=StringConcatenate(name,",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS)) 。

ObjectCreate(name,OBJ_TREND,0,Time[i],High[i],Time[i],Low[i])。

ObjectSet(name,OBJPROP_COLOR,col)。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)。

ObjectSet(name,OBJPROP_BACK,false)。

ObjectSet(name,OBJPROP_RAY,false)。

ObjectSet(name,OBJPROP_WIDTH,2);

name=StringConcatenate(name," o")。

ObjectCreate(name,OBJ_TREND,0,Time[i],Open[i],Time[i];

ObjectSet(name,OBJPROP_COLOR,col)。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)。

ObjectSet(name,OBJPROP_BACK,false)。

ObjectSet(name,OBJPROP_RAY,false)。

ObjectSet(name,OBJPROP_WIDTH,2);

name=StringConcatenate(name," c")。

ObjectCreate(name,OBJ_TREND,0,Time[i],Close[i],Time[i]+Period()*60,Close[i]) 。

ObjectSet(name,OBJPROP_COLOR,col)。

ObjectSet(name,OBJPROP_STYLE,STYLE_SOLID)。

ObjectSet(name,OBJPROP_BACK,false)。

ObjectSet(name,OBJPROP_RAY,false)。

ObjectSet(name,OBJPROP_WIDTH,2);

}

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

void DrawTEXT(string NT,string Name,color col,datetime t1,double p1)

{

ObjectDelete(NT)。

ObjectCreate(NT,OBJ_TEXT,0,t1,p1,0,0,0)。

ObjectSet(NT,OBJPROP_COLOR,col)。

ObjectSetText(NT,Name,10, "Arial")。

}

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


 
Kos Mos:

大家好!我坐在这里转着指标。我认为我做的一切都是对的。但问题是...我在每支蜡烛上都开了一个交易。



这个 "表 "真的令人印象深刻:-) 更仔细地插入代码,不要复制出明显不必要的东西。

关于这个问题 - 自己打印stop_buy和stop_sell的值。因为条件被明确地触发了:

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

也许stop_buy和stop_sell被初始化为0而不是EMPTY_VALUE

 
Maxim Kuznetsov:

工作表 "当然很好:-)更仔细地插入代码,不要复制任何明显不必要的东西。

关于这个问题--自己打印停止购买和停止出售。因为很明显,一个条件被触发了。

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

也许stop_buy和stop_sell被初始化为0,而不是EMPTY_VALUE

很抱歉))--看在上帝的份上,整整写了一页)。


我现在就去试试)

 
Maxim Kuznetsov:

工作表 "当然很好:-)更仔细地插入代码,不要复制任何明显不必要的东西。

关于这个问题 - 自己打印stop_buy和stop_sell的值。因为很明显,这个条件被触发了。

  if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {

也许stop_buy和stop_sell被初始化为0而不是EMPTY_VALUE

它仍然不工作。顺便说一下,我注意到,卖出订单正确打开,但在买入订单中却疯狂地打开了10亿))

 
Kos Mos:

它的效果仍然不尽相同。顺便说一下,我注意到,卖出时的交易是正确打开的,但在买入时,它却疯狂地打开了10亿个))。

那么,至少可以启用搜索?插入代码...

真是个问题...你甚至不需要打开搜索,论坛引擎会把小册子本身...
 
Alexey Viktorov:

你至少可以启用搜索吗?插入代码...

太可惜了...你甚至不需要做搜索,论坛引擎本身就会把小册子放在...

我深表歉意,在论坛上没有多少表现自己的经验))



   // получение сигнала _________________________________________________________________________________________________________
   int signal=-1;
   if (time_bar!=Time[0]) {
      time_bar=Time[0];
      double stop_buy=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,0,1);
      double stop_sell=iCustom(Symb,0,"cm-FiguresCandle",AlertON,colorBulls,colorBears,DrawCandle,1,1);
      if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
         double super_buy=iCustom(Symb,0,"xSuperTrend Tape MTF NRP","","",SuperTrend_Period,SuperTrend_Multiplier,SuperTrend_TimeFrame,SuperTrend_AutoTF,0,1);
        if(stop_buy!=EMPTY_VALUE && super_buy==1) signal=0;
         if(stop_sell!=EMPTY_VALUE && super_buy==EMPTY_VALUE) signal=1;
         }


 
我不能让滑雪板走,你能帮助我吗?)
 
大家好,谁能帮我把两个指标合并成一个,我有源代码,我真的需要它。
 
Олег:
大家好,谁能帮我把两个指标合并成一个,我有源代码,我真的需要它。

你要么让我看看你在合并时不能做什么,要么在你自己没有做或者不想做的情况下联系我。

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
 
Artyom Trishkin:

你要么让我看看你在合并时不能做什么,要么就来这里,如果你自己没有做,或者不想做。

我想知道我到底不能做什么,我明白没有人可能免费告诉我什么--资本主义,看在他妈的份上))。我并不反对,我只是需要了解为什么在买入方向的每根蜡烛上都有交易。