[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 744

 

仍在批量打开这个订单。

我是这样在我的Ekspert中设置变量的

extern int TakeProfit=18;
extern int StopLoss=18;
extern double Lot=0.01;
extern int StartTime=0;
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{


if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
int total = OrdersTotal();
if(total == 0)



   {NewOrder(OP_BUY,Lot);
    NewOrder(OP_SELL,Lot);
    NewOrder(OP_BUYLIMIT,Lot);
    NewOrder(OP_SELLLIMIT,Lot);
    NewOrder(OP_BUYSTOP,Lot);
    NewOrder(OP_SELLSTOP,Lot);
    Today=TimeDay(TimeCurrent());}
    
{



for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1;
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
         }
      }


}//end

if(bs==1||bl==1)
{   
    NewOrder1(OP_BUYLIMIT,Lot);
Today=TimeDay(TimeCurrent());}
    

而这里是订单的开端

int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double LT=0; //Лот
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
   {PR=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;
    if(Lot>0) LT=3*Lot;}
int tic1=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
//-----------
if(tic1<0) Print(GetLastError());

if(tic1>0){
b=0;s=0; //соответственно бай или селл  
bs=0;// если закрытие по стоплоссу ордера бай
ss=0;// если закрытие по стоплоссу ордера sell
bt=0;
st=0;//      то же по ТП
bl=0;sl=0; // лоты соответсвенно для бай и селл
}
//-----------
return(tic1);}
 
profitinvesting:

你能不能给我一个函数的代码,让我在盈亏平衡的水平上设置一个止损,比如说,当利润为20点的时候。

提前感谢您的答复:)

你可以在Igor Kim的网站http://www.kimiv.ru,找到它和许多其他有用的功能。如果我没记错的话,你需要的那个叫MovingInWL()。
 
ToLik_SRGV:

鲍里斯,嗯,比这还简单。你放下这句话。

在代码的最顶端(要分开,不在任何函数中)。
然后在那些有调用OrderSend(...)函数的地方,只要把它放在一个额外的if运算符的拥抱中就可以了。

现在,在打开下一个订单之前,操作员将检查当前酒吧是否有交易或没有交易。如果是这样,那么当前的条形图已经存储在变量new中,如果当前的条形图与存储的条形图重合,那么将不开仓。相应地,如果酒吧是新的,那么它的开盘时间将与变量new的数据不一致,交易将被打开,变量new 将得到一个新的值。

我不知道你的EA的具体架构,但这种方法在大多数情况下应该是有效的。


非常感谢您!它非常合适!
 

我想不出有什么更好的办法来进行。

有一个带有一堆数组的指标。第二个指标需要与这些数组一起工作。 要计算并将结果输出到它自己的表格。

最简单的方法是调用这个指标,但似乎这是不可能的。

如何进入其他数组?

 
Abzasc:

我不知道。

我知道了。
 
LAIT123:

你好,请你告诉我如何在MT4中查看日志?

你不需要发布15条只有一个内容的信息。如果你这样做,最好是自己打扫卫生。不要等待叔叔们的到来。
 
artmedia70:

你必须真的需要...:) 或者鼠标被卡住了...



不是鼠标卡住了。这就是不耐烦。最后我花了20分钟才删除了15个帖子。
 
Vinin:

不是鼠标卡住了。
他以为那是一个聊天室 :)
 
FoxUA:

仍在批量打开这个订单。

我是这样在我的Ekspert中设置变量的

而这里是订单的开端

我完全不明白这是什么感觉...大括号彼此不匹配,一个封闭的大括号不见了......我不知道发生了什么事。清理你的代码...这很难处理,而且没有办法编译和运行它--我们正在研究自己的代码...
 
Vinin:

不是鼠标卡住了。这就是不耐烦。最后我花了20分钟才删除了15个帖子。
:)不耐烦通常是在另一个办公室进行的...:)
原因: