请给我一个提示,因为我以前从未向程序员寻求过帮助 - 页 6

 
Serqey Nikitin:

你误解了...没有人会去修复这些报价...

规则中没有禁止订单执行 中的 "延迟"...并扩大传播范围...

我明白你的意思。你可能误解了我的意思。我的意思是,一切都有局限性。每一个未平仓的订单,价差不会扩大10倍。延迟不会增加数倍。

说实话,我不是来这里吹牛的。如果这个想法不成功,我就会成为大多数人,这就是常态。
 
Serqey Nikitin:

你误解了...没有人会去修复这些报价...

规则中没有禁止订单执行 中的 "延迟"...并扩大传播范围...

我很抱歉你在一个无用的想法上浪费了这么多时间......,而且只是因为你上了黄牛的广告......。
 
Serqey Nikitin:
我很遗憾你在一个无用的想法上浪费了这么多时间......,而且只是因为你上了黄牛的当......。

我们与你的对话就到此为止。我不想打探和挖掘别人的猜测。

 
Aleksandr2233:

我们与你的对话就到此为止。我不想打探和挖掘别人的猜测。

用你的头脑......有时,如果你没有得到正确的建议,就会有帮助......
 

专家顾问为挂单 设置止损和止盈,如果没有的话。如果挂单到价格的距离超过了挂单到止损的距离,则删除挂单。

#property version   "2.00"
#property strict

input int StopLoss=300;
input int TakeProfit=500;

double loss, profit;
bool result;

string symbol;
double point;
int digits;
 
MqlTick tick;


int OnInit()
   {
   symbol=Symbol();
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   SymbolInfoTick(symbol,tick);
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()!=symbol && OrderClosePrice()!=0) continue;
      if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(tick.ask-MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && tick.ask-OrderOpenPrice()>OrderOpenPrice()-OrderStopLoss())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      if(OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(tick.ask-MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && OrderOpenPrice()-tick.bid>OrderStopLoss()-OrderOpenPrice())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      }
   }

没有测试

 
Aleksei Stepanenko:

专家顾问为挂单 设置止损和止盈,如果没有的话。如果挂单到价格的距离超过了挂单到止损的距离,则删除挂单。

未测试

我以后会检查的。谢谢你。更有可能在私人信息中回复你。

 
Serqey Nikitin:
把你的头转过来......,有时候,如果你没有得到正确的建议,就会有帮助......

谢谢你的建议。

 
Aleksei Stepanenko:

专家顾问为挂单 设置止损和止盈,如果没有的话。如果挂单到价格的距离超过了挂单到止损的距离,则删除挂单。

未测试

然而,我不知道该如何处理代码以获得一个现成的ex4文件。我知道有一个程序MetaEditor,但我只打开过一次。

 
把它放在 \MQL4\Indicators 文件夹里,然后重新启动终端。
附加的文件:
 
Aleksei Stepanenko:
把它放在\MQL4\Indicators 文件夹里,然后重新启动终端。

而我理解的文件是一个专家

EE的快照