Имеется готовый год с Амиброкера который можно использовать для "перевода" в МТ4 ( с дополнениями) Советник должен работать на всех тайм фреймах (внутри дня, дневной и выше) и обязательно на Ренко Советник должен торговать на корзине инструментов (портфель) У советника должна быть возможность менять параметры в окне (без необходимости открывать...
大家好!我坐在这里转着指标。我认为我做的一切都是对的。但问题是...在每个蜡烛上打开交易
专家顾问代码
// получение сигнала _________________________________________________________________________________________________________
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")。
}
//--------------------------------------------------------------------
大家好!我坐在这里转着指标。我认为我做的一切都是对的。但问题是...我在每支蜡烛上都开了一个交易。
这个 "表 "真的令人印象深刻:-) 更仔细地插入代码,不要复制出明显不必要的东西。
关于这个问题 - 自己打印stop_buy和stop_sell的值。因为条件被明确地触发了:
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
也许stop_buy和stop_sell被初始化为0而不是EMPTY_VALUE。
工作表 "当然很好:-)更仔细地插入代码,不要复制任何明显不必要的东西。
关于这个问题--自己打印停止购买和停止出售。因为很明显,一个条件被触发了。
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
也许stop_buy和stop_sell被初始化为0,而不是EMPTY_VALUE。
很抱歉))--看在上帝的份上,整整写了一页)。
我现在就去试试)
工作表 "当然很好:-)更仔细地插入代码,不要复制任何明显不必要的东西。
关于这个问题 - 自己打印stop_buy和stop_sell的值。因为很明显,这个条件被触发了。
if(stop_buy!=EMPTY_VALUE || stop_sell!=EMPTY_VALUE) {
也许stop_buy和stop_sell被初始化为0而不是EMPTY_VALUE。
它仍然不工作。顺便说一下,我注意到,卖出订单正确打开,但在买入订单中却疯狂地打开了10亿))
它的效果仍然不尽相同。顺便说一下,我注意到,卖出时的交易是正确打开的,但在买入时,它却疯狂地打开了10亿个))。
那么,至少可以启用搜索?插入代码...
真是个问题...你甚至不需要打开搜索,论坛引擎会把小册子本身...你至少可以启用搜索吗?插入代码...
太可惜了...你甚至不需要做搜索,论坛引擎本身就会把小册子放在...我深表歉意,在论坛上没有多少表现自己的经验))
大家好,谁能帮我把两个指标合并成一个,我有源代码,我真的需要它。
你要么让我看看你在合并时不能做什么,要么在你自己没有做或者不想做的情况下联系我。
你要么让我看看你在合并时不能做什么,要么就来这里,如果你自己没有做,或者不想做。
我想知道我到底不能做什么,我明白没有人可能免费告诉我什么--资本主义,看在他妈的份上))。我并不反对,我只是需要了解为什么在买入方向的每根蜡烛上都有交易。