[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 144

 
很久以前,我在这个网站的某个地方遇到了一个链接,在那里你可以上传你的机器人,还可以输入你的用户名、密码和服务器,当我的copm关闭时,它就会进行交易....。有人记得这个网站吗?
 
jobber:
很久以前,我在这个网站的某个地方遇到了一个链接,在那里你可以上传你的机器人,以及指定用户名、密码、服务器,当我的copm关闭时,它将进行交易....。有人记得这个网站吗?

你可以在搜索引擎中输入VPS,我不知道它的字面意思,但它可能是交易者的虚拟桌面。
 
splxgf:

拉扎列夫-丹尼斯

最初的计数是59条,这是不正确的。分钟数可能有差距,最后一个小时条可能包含较少的分钟数。

你应该取小时条的开盘和收盘时间(Time[i])。用这个时间来计算iBarShift分钟的偏移量,然后在这个偏移量的范围内计算出最大值。

顺便问一下,指标在一分钟时间内应该显示什么?

虽然,这对专家顾问来说并不重要,它只需要在一分钟的条形图上获得最后的数值,如果这个数字是正的,价格就会上升,如果是负的,就会下降,通过返回数字的模数来显示运动的强度。


至于条数--他们的60条从零开始计算,没有60分钟,因为这是新小时的零分钟,还是我搞错了?

我对最后一个小时的条形图有疑问,但我希望由于根本没有迷你条形图,它们的体积等于零,它们不会影响计算结果。

我做了一个分钟条来检查计算的充分性,所以我已经确定我有一个错误,标记了小时的开始和结束,以及水平指标中的最大值,然后切换到分钟条并检查,6小时条很好,然后就出问题了

 
LazarevDenis:


至于条数--他们的60条从零开始计算,没有60分钟,因为它是新小时的零分钟,还是我搞错了?

我对最后一个小时的条形图有疑问,但我希望由于根本没有分钟条形图,它们的体积是零,不会影响计算结果。

我创建了一个分钟条,以检查计算的充分性,我已经定义了我有一个错误。 在小时条上,我标记了小时的开始和结束,以及水平指标中的最大值,然后切换到分钟条并检查,6个小时条都很好,然后就出问题了


编写或提供你的代码?
 
Vinin:

编写或提供你的代码?
我有点困惑,不知道该怎么写?
指标代码在前一页,当我确定指标工作正常时,我将添加EA,谢谢。
 
//+------------------------------------------------------------------+
//| FT_Fractal_MA.mq4 !
//| FORTRADER.RU, Yuri, ftyuriy@gmail.com ||
//|http://FORTRADER.RU,分形+平均数 |
//+------------------------------------------------------------------+
#财产版权"FORTRADER.RU, Yury, ftyuriy@gmail.com"
#property link "http://FORTRADER.RU, Fractals + Averages"

/*为第49期FORTRADER.Ru开发。关于分形和平均数的系统。
报告:http://finfile.ru/index.php/files/get/6qQW8tgENy/fracralma1.zip, http://finfile.ru/index.php/files/get/_glRYiHkQi/fracralma2.zip
设置文件:http://finfile.ru/index.php/files/get/k2w2e92iCI/eurusd1h.zip
讨论:http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=266&grouppost_id=2667#post_2667
日志档案:http://www.fortrader.ru/arhiv.php
第49期:http://www.fortrader.ru/
*/

外置 int lwmaper1=4;
外置 int lwmaper2=8;

Extern int int lwmapertrend=40;
外部int lwmatrendchart=1;

外置 int SL=150;
外部int TP=150;

外来的int mn=1;

int err;

外来的int MG=564651。
外来的双倍Lots=0.01。

外来的int maxpos=1。

int bars。
int start()
{
if(bar!=Bars)
{
酒吧=酒吧。
OpenPattern()。
}
return(0);
}

int okbuy; }

int OpenPattern()
{
双人操作,Sl,Tp。
double upf=iFractals(NULL, 0, MODE_UPPER, 3)。
double dwf=iFractals(NULL, 0, MODE_LOWER, 3)。
double lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA, PRICE_CLOSE,1)。
double lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1) 。
double lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2) 。
double lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2) 。
double lwmatrend=iMA(NULL,GetPeriod(lwmatrendchart),lwmapertrend,0,MODE_LWMA,PRICE_CLOSE,1) 。
double lwmatrendLast=iMA(NULL,0,GetPeriod(lwmatrendchart),0,MODE_LWMA, PRICE_CLOSE,2)。
如果(upf!=0){oksell=1;okbuy=0;}。
if(dwf!=0){okbuy=1;oksell=0;}。
if(oksell==1 && lwma1<lwma2 && lwma1Last>lwma2Last && CountPos(0)<maxpos && lwmatrend>lwmatrendLast)
{
op=Bid;if(SL>0){sl=Bid+SL*Point*mn;}if(TP>0){tp=Bid-TP*Point*mn;}。
err=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "4 FORTRADER.RU",MG,0,Red)。
if(err<0){Print("OrderSend()- Error OP_SELL. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());返回(-1);}
oksell=0。
}
if(okbuy==1 && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1) <maxpos && lwmatrend<lwmatrendLast)
{
op=Ask;if(SL>0){sl=Ask-SL*Point*mn;}if(TP>0){tp=Ask+TP*Point*mn;}。
err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "6 FORTRADER.RU",MG,0,Red)。
if(err<0){Print("OrderSend()- Error OP_BUY. op "+op+" sl "+sl+" tp "+tp+""+GetLastError());返回(-1);}
okbuy=0。
}
return(err)。
}
//检查位置的数量。
int CountPos(int type)
{//描述http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66

int i;
int col;
int count=0 ;
for( i=0; i<=OrdersTotal(); i++)
{
如果(OrderSelect(i,SELECT_BY_POS)==true)
{
如果(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG){count++;}。
如果(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG){count++;}。
}
}
return(count)。
}

int GetPeriod(int GrafOpen)
{int GrafOpenT;
switch(GrafOpen)
{
case 1: GrafOpenT=1;break;
case 2: GrafOpenT=5;break;
case 3: GrafOpenT=15;break;
case 4: GrafOpenT=30;break;
case 5: GrafOpenT=60;break;
case 6: GrafOpenT=240;break;
case 7: GrafOpenT=1440;break;
默认:GrafOpenT=1;break;
}
返回(GrafOpenT)。

}

请从这个网站调换这个EA的买卖,我遇到了麻烦。检查它是很有趣的,因为它太好,可以通过锯子来倾倒。

 
LazarevDenis:


至于条数--他们的60条从零开始计算,没有60分钟,因为这是新小时的零分钟,还是我搞错了?

我现在要问一个愚蠢的问题,一年有多少个日条?
 

晚安......早上......甚至可能是下午......。

我正在努力学习mql语言......我面临着一个误解......。问题的本质在代码中。

      OrderSelect(ТикетСелл,SELECT_BY_TICKET);
      double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
      PrintDoubleToStr("OrderOpenPrice()= ",OrderOpenPrice(),8);PrintDoubleToStr("ЦенаПродажи= ",ЦенаПродажи,8);
      PrintDoubleToStr("OrderStopLoss()= ",OrderStopLoss(),8);PrintDoubleToStr("ЦенаПокупки= ",ЦенаПокупки,8);
      PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);PrintDoubleToStr("СеллТейкПрофит= ",СеллТейкПрофит,8);
      Print(OrderType(),"=",OP_SELLSTOP);
      if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
      {
         OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
      }

PrintDoubleToStr"函数将双数打印到日志中...

一般来说,在我的日记中(从下到上阅读)。

2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: 5=5
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.41884000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПокупки= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()= 1.44244000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: ЦенаПродажи= 1.43064000
2011.09.04 22:56:36	2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()= 1.43064000

有一个问题:如果所有的值都是相等的,因此不符合这个条件,为什么会修改顺序?

if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
请告诉我,我哪里错了......
 
niknikolas:

请告诉我,我哪里错了......

我不会钓到鱼,但我会给你一根鱼竿......你也可以添加一行Print(OrderOpenPrice()!=Sale Price),图片就会很完整,足以得出独立结论。
 
splxgf:
我不会钓到鱼,但我会给你一根鱼竿......你可以多加几行Print(OrderOpenPrice()!=SellTakeProfit),画面就会完整,足以得出独立的结论。

正如他们所说,"这对我有什么好处?"我需要一条虫子...总之,这里是代码。

OrderSelect(ТикетСелл,SELECT_BY_TICKET);
double СеллТейкПрофит=ЦенаПродажи-(ЦенаПокупки-ЦенаПродажи);
Print("OrderOpenPrice()!=ЦенаПродажи= ",OrderOpenPrice()!=ЦенаПродажи);
Print("OrderStopLoss()!=ЦенаПокупки= ",OrderStopLoss()!=ЦенаПокупки);
Print("OrderTakeProfit()!=СеллТейкПрофит= ",OrderTakeProfit()!=СеллТейкПрофит);
PrintDoubleToStr("OrderTakeProfit()= ",OrderTakeProfit(),8);
PrintDoubleToStr("СеллТейкПрофит   = ",СеллТейкПрофит,8);
if((OrderType()==OP_SELLSTOP) && ((OrderOpenPrice()!=ЦенаПродажи)||(OrderStopLoss()!=ЦенаПокупки)||(OrderTakeProfit()!=СеллТейкПрофит)))
{
 OrderModify(OrderTicket(),ЦенаПродажи,ЦенаПокупки,СеллТейкПрофит,0,Red);
}
在该杂志上。
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderModify error 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: СеллТейкПрофит   = 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()= 1.42505000
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderTakeProfit()!=СеллТейкПрофит= 1
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderStopLoss()!=ЦенаПокупки= 0
2011.09.05 00:21:32     2011.08.01 00:00  Прямоугольник EURUSD,H1: OrderOpenPrice()!=ЦенаПродажи= 0

为什么在 "SellTakeProfit=1.42505000 "和 "OrderTakeProfit()=1.42505000 "的情况下,"OrderTakeProfit()!=SellTakeProfit=1 "

一般情况下不清楚...