如何编码? - 页 125

 
它有什么问题?只针对欧元兑美元?它看起来和其他的一样吗?
LazyForex:
哈...你能用你的键盘上的相同的键来使这个也能工作吗? 干杯!
 
IN10TION:
它有什么问题?只针对欧元兑美元?它看起来和其他的一样吗?

它有同样的问题。在回测 中工作,但在正向测试中不工作。没有交易被执行...你能帮忙吗?

 
IN10TION:
它也被设置为只在欧元兑美元上工作,我已经把它换成了另一个限制...是的...同一个键...

顺便说一下,我必须改变另一个...。我看到我可以做的其他事情...是的...同样的钥匙

...

分享一下结果好吗?(或给我发邮件)我想知道

IN10TION

你的键盘要出售吗?

谢谢你。将随时向您报告。

 
在这个问题上使用了更多的键......但你也可以将其用于其他货币,只设置了欧元兑美元......不知道为什么,你会知道的,我希望
附加的文件:
 
它也被设置为只在欧元兑美元上工作,我已经把它关掉了,还有其他的限制......是的......同样的键......。

btw 我必须改变另一个...。我看到我可以做的其他事情...是的...相同的键...

分享一下结果好吗?(或给我发邮件)我想知道

解释

LazyForex:
这是同样的问题。在回测中工作,但在正向测试中不工作。没有交易被执行...你能帮忙吗?
附加的文件:
 

非常感谢你的建议。我发现在大多数情况下(也许在所有情况下),在最新的条形图开始时有一个刻度,所以我可以用开盘价 交易。这并不理想,但(正如上面所说的)收盘价和开盘价之间的差异很小。

 

函数 iTime的返回值是什么?它是一个条形图的起始日期吗?手册中只写了 "返回指定符号的条形的时间值,包括时间框架和移位"。

谢谢你的回答。

 
:: 是的,条形图的开始
mellda:
函数iTime返回的是什么值?是条形图的起始日期吗?手册中只写了 "返回指定符号的条形的时间值,包括时间框架和移位。"谢谢您的回答。
 
IN10TION:
在这个问题上确实用了一些更多的键......但你也可以用在其他货币上,只设置了欧元兑美元......不知道为什么,你会知道的,我希望

嗨,IN10TION。

给你发了一个PM...

 

需要EA在达到利润时关闭所有订单

你好,我想知道你们中的某位伟大的程序员是否能在代码中加入一旦g_MinProfit和f_MinProfit被击中就关闭所有订单的内容。我发现,当利润被击中时,会有剩余的买入/卖出止损/限价订单 滞留,我希望一旦触发最小利润,就将它们全部删除。

谢谢你

extern bool g_CLOSE_ALL=false;

extern bool g_RESTART=true;

extern int g_Step=120;

extern double g_FirstLot=0.1;

extern double g_IncLot=0;

extern double g_MinProfit=450;

extern int g_Magic = 2008;

extern string g_comment="Win";

extern bool f_CLOSE_ALL=false;

extern bool f_RESTART=true;

extern int f_Step=120;

extern double f_FirstLot=0.1;

extern double f_IncLot=0;

extern double f_MinProfit=450;

extern int f_Magic = 2009;

extern string f_comment="REV";

int GOrder_Buy=0;

int GOrder_Sell=0;

double GLotSell=0;

double GLotBuy=0;

double gLotSell=0;

double gLotBuy=0;

double gLSP,gLBP;

double gCurrentProfit;

int FOrder_Buy=0;

int FOrder_Sell=0;

double FLotSell=0;

double FLotBuy=0;

double fLotSell=0;

double fLotBuy=0;

double fLSP,fLBP;

double fCurrentProfit;

double max_dd;

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

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

int init()

{

Comment("Waddah Attar Win TradeBalancer 1");

if(!GlobalVariableCheck("max_DD")) GlobalVariableSet("max_DD",0);

return(0);

}

int deinit()

{

Comment("");

return(0);

}

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

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

int start()

{

gCurrentProfit=GetOrdersProfit(g_Magic);

if (gCurrentProfit>=g_MinProfit || g_CLOSE_ALL)

{

DeletePendingOrders(g_Magic);

CloseOrders(g_Magic);

}

if (MyOrdersTotal(g_Magic)==0 && g_RESTART)

{

OrderSend(Symbol(),OP_BUYLIMIT,g_FirstLot,Ask-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLLIMIT,g_FirstLot,Bid+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

gLSP=GetLastSellPrice(g_Magic);

gLBP=GetLastBuyPrice(g_Magic);

if((gLSP-Bid)<=5*Point)

{

OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+g_IncLot,gLSP+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

if((Ask-gLBP)<=5*Point)

{

OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+g_IncLot,gLBP-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

}

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

fCurrentProfit=GetOrdersProfit(f_Magic);

if (fCurrentProfit>=f_MinProfit || f_CLOSE_ALL)

{

DeletePendingOrders(f_Magic);

CloseOrders(f_Magic);

}

if (MyOrdersTotal(f_Magic)==0 && f_RESTART)

{

OrderSend(Symbol(),OP_BUYSTOP,f_FirstLot,Ask+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLSTOP,f_FirstLot,Bid-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

fLSP=GetLastSellPrice(f_Magic);

fLBP=GetLastBuyPrice(f_Magic);

if((Bid-fLSP)<=5*Point)

{

OrderSend(Symbol(),OP_SELLSTOP,fLotSell+f_IncLot,fLSP-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

if((fLBP-Ask)<=5*Point)

{

OrderSend(Symbol(),OP_BUYSTOP,fLotBuy+f_IncLot,fLBP+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

}

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

//max_dd=

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

Comment("Waddah Attar Win TradeBalancer 1",

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(gCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(GLotBuy,2) + " / " + GOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(GLotSell,2) + " / " + GOrder_Sell,

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(fCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(FLotBuy,2) + " / " + FOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(FLotSell,2) + " / " + FOrder_Sell);

return(0);

}

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

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

int DeletePendingOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY && OrderType()!=OP_SELL))

{

OrderDelete(OrderTicket());

}

}

return(0);

}

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

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

int CloseOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);

}

if (OrderType()==OP_SELL)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

}

}

}

return(0);

}

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

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

int MyOrdersTotal(int Magic)

{

int c=0;

int total = OrdersTotal();

if(Magic==g_Magic) { GLotBuy=0; GLotSell=0; GOrder_Buy=0; GOrder_Sell=0; }

if(Magic==f_Magic) { FLotBuy=0; FLotSell=0; FOrder_Buy=0; FOrder_Sell=0; }

for (int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if(Magic==g_Magic)

{

if(OrderType()==OP_BUY) { GLotBuy=GLotBuy+OrderLots(); GOrder_Buy++; }

if(OrderType()==OP_SELL) { GLotSell=GLotSell+OrderLots(); GOrder_Sell++; }

}

if(Magic==f_Magic)

{

if(OrderType()==OP_BUY) { FLotBuy=FLotBuy+OrderLots(); FOrder_Buy++; }

if(OrderType()==OP_SELL) { FLotSell=FLotSell+OrderLots(); FOrder_Sell++; }

}

c++;

}

}

return(c);

}

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

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

double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUY))

{

if(Magic==g_Magic) gLotBuy=OrderLots();

if(Magic==f_Magic) fLotBuy=OrderLots();

return(OrderOpenPrice());

}

}

return(0);

}

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

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

double GetLastSellPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELL))

{

if(Magic==g_Magic) gLotSell=OrderLots();

if(Magic==f_Magic) fLotSell=OrderLots();

return(OrderOpenPrice());

}

}

return(100000);

}

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

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

double GetOrdersProfit(int Magic)

{

double eProfit=0;

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))

{

eProfit=eProfit+OrderProfit();

}

}

return(eProfit);

}

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