任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 356

 
我试着改变了两个Muwings的 MA1_Shift=1参数。这似乎有帮助。我将在一分钟内测试它。
 
okidoki543:
谢谢你,但我想要一个精确的解决方案。这样,当前的条形图就不会被考虑在内,而只考虑以前的条形图。

为了有一个精确的解决方案,你需要你的代码,你想从其中得到一个精确的解决方案。但你没有密码。所以你也没有解决办法......
 
всokidoki543:
谢谢你,但我想要一个精确的解决方案。这样,当前的条形图就不会被考虑在内,而只考虑以前的条形图。


妈的,我挖了别人的代码,又是一目十行地想改这一块。在这种情况下,可能PRICE_CLOSE或0应该是...

   MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1);    // Текущее    значение 1-й МА
   MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 2);    // Предыдущее значение 1-й МА
   MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1);    // Текущее    значение 2-й МА
   MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 2);    // Предыдущее значение 2-й МА
 

这是代码,将移位从0改为1。那会有帮助吗?

//============================================================================================
//
//
//
//
//
//============================================================================================
inttern MA1_Period=7; // 第一个MA周期
外部 intMA2_Period=13; // 第二个MA的周期。
extern int MA1_Method=1; // MA1计算方法(SMA=0,EMA=1,SMMA=2,LWMA=3)。
extern int MA2_Method=1; // MA2计算方法(SMA=0,EMA=1,SMMA=2,LWMA=3)。
Extern int MA1_Price=0; // MA1价格计算方法
Extern int MA2_Price=0; // MA2价格计算方法
extern int MA1_Shift=1; // MA1时间转移
extern int MA2_Shift=1; // MA2时间转移
外置双倍数 Lot = 0.01; // 固定批量
extern int slippage = 0; // 市场订单的价格偏差
int New_Bar; // 0/1 新条形的形成
int Time_0; // 新条的开始时间

int PosClose; // 交叉方向
int total; // 未结订单的数量
double MA1_0; // 第一个МА的当前值(粉色)。
double MA1_1; // 第一个MA的前值(粉色)。
double MA2_0; // 第二个MA的当前值(蓝色)。
double MA2_1; // 第二个MA的前值(蓝色)。
int orderBuy; // 1 = 买入订单存在的事实
int orderSell; // 1 =存在卖出指令的事实
//============================================================================================
int init()
{

}
//============================================================================================
int start()
{

双倍价格。

int total=OrdersTotal(); // 订单总数
for(int i=total-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) //选择订单
{
如果(OrderType()==OP_BUY) // 如果是买入订单
{
orderBuy=1。
如果(CrossPositionClose()==1) //如果满足的话,关闭订单。
{//条件 CrossPositionClose()=1
价格=MarketInfo(Symbol(),MODE_BID)。
OrderClose(OrderTicket(),OrderLots(),price,slipage,CLR_NONE)。
}
}
如果(OrderType()==OP_SELL) // 如果是买入订单
{
orderSell=1。
如果(CrossPositionClose()==2) //如果满足的话,关闭订单。
{//条件 CrossPositionClose()=2
price=MarketInfo(Symbol(),MODE_ASK)。
OrderClose(OrderTicket(),OrderLots(),price,slipage,CLR_NONE)。
}
}
}
}

New_Bar=0; // 我们先把它归零。
if (Time_0 != Time[0]) // 如果酒吧的开始时间已经不同了
{
New_Bar= 1; // 这里是一个新的柱子
Time_0 = Time[0]; // 记住新的酒吧开始时间。
}

MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 0); // 第一个MA的当前值。
MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1); // 第一个MA的前值。
MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 0); // 第二个MA的当前值。
MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1); // 第二个MA的前值。


返回。
}

//============================================================================================
int CrossPositionClose()
{
PosClose=0; //这就是狗被埋葬的地方!!!)
if ((MA1_1>=MA2_0 && MA1_0<MA2_0) || (MA1_1>MA2_0 && MA1_0<=MA2_0)) // CrossPosition Close {
{
PosClose=1。
}
if ((MA1_1<=MA2_0 && MA1_0>MA2_0) || (MA1_1<MA2_0 && MA1_0>=MA2_0)) //向下交叉
{
PosClose=2。
}
return(PosClose); // 返回相交方向。
}
//============================================================================================

//============================================================================================
int MAMethod(int MA_Method)
{
switch(MA_Method)
{
case 0: return(0); //return MODE_SMA=0
case 1: return(1); // return MODE_EMA=1
case 2: return(2); // Return MODE_SMMA=2
case 3: return(3); //return MODE_LWMA=3
}
}
//============================================================================================
int MAPrice(int MA_Price)
{
switch(MA_Price)
{
case 0: return(PRICE_CLOSE); // Return PRICE_CLOSE=0
case 1: return(PRICE_OPEN); //return PRICE_OPEN=1
case 2: return(PRICE_HIGH); //return PRICE_HIGH=2
case 3: return(PRICE_LOW); //return PRICE_LOW=3
case 4: return(PRICE_MEDIAN); //return PRICE_MEDIAN=4
case 5: return(PRICE_TYPICAL); //return PRICE_TYPICAL=5
case 6: return(PRICE_WEIGHTED); //return PRICE_WEIGHTED=6
}
}
//============================================================================================

 
Sepulca,我已经试过了,编译器发誓说。
 
okidoki543:
Sepulca,我已经试过了,编译器发誓说。

不可能的,我自己也要去试试......
 
妈的,现在不说脏话了。对不起,我搞错了。之前因为某些原因出现了这个错误。(
 
完全没有骂人的意思....Test by you.....已经做了修改,愿作者原谅我....。
附加的文件:
 
我的论坛帖子有两个是一次点击打开的,或者是我的鼠标在响,或者是其他原因。我必须在以后再删除它......,但我会检查这个帖子....。
 

Sepulca,谢谢,你的代码起作用了。只是我把班次放回了原位。

我将在更长的时间范围内检查,我将折磨它几天,以确保这个代码的工作。