アドバイザーを無料でお書きします - ページ 82 1...757677787980818283848586878889...171 新しいコメント Maksim Sovenko 2018.09.17 17:21 #811 Vitali_Leto: 警告について、どなたか教えてください。コードと対応する警告を表示します。 Vitalii Vakulin 2018.09.17 17:26 #812 int init() { Spread=MarketInfo(Symbol(),MODE_SPREAD)*Point; return (0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { return (0); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí int start() { if(AccountNumber()!=6534787) {Comment("Не верный счет!"); return(0);} int PipStepE=NormalizeDouble(Pipstep*MathPow(PipStepExp(NumOfTrades),TradeStepExp(NumOfTrades)),0); //PipStep = NormalizeDouble(Pipstep * MathPow(PipStepExponent, NumOfTrades), 0); double PrevCl; double CurrCl; if(UseTrailingStop) TrailingAlls(TrailStart,TrailStop,AveragePrice); if(UseTimeOut) { if(TimeCurrent()>=expiration) { CloseThisSymbolAll(); Print("Closed All due to TimeOut"); } } if(timeprev == Time[0]) return (0); timeprev=Time[0]; double CurrentPairProfit=CalculateProfit(); if(UseEquityStop) { if(CurrentPairProfit<0.0 && MathAbs(CurrentPairProfit)>TotalEquityRisk/100.0*AccountEquityHigh()) { CloseThisSymbolAll(); Print("Closed All due to Stop Out"); NewOrdersPlaced=FALSE; } } total=CountTrades(); if(total==0) flag =FALSE; for(cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { LongTrade=TRUE; ShortTrade=FALSE; break; } } if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_SELL) { LongTrade=FALSE; ShortTrade=TRUE; break; } } } if(total>0 && total<=MaxTrades) { RefreshRates(); LastBuyPrice=FindLastBuyPrice(); LastSellPrice=FindLastSellPrice(); if(LongTrade && LastBuyPrice-Ask>=PipStepE*Point) TradeNow=TRUE; if(ShortTrade && Bid-LastSellPrice>=PipStepE*Point) TradeNow=TRUE; } if(total<1) { ShortTrade= FALSE; LongTrade = FALSE; TradeNow=TRUE; StartEquity=AccountEquity(); } if(TradeNow) { LastBuyPrice=FindLastBuyPrice(); LastSellPrice=FindLastSellPrice(); if(ShortTrade) { NumOfTrades=total; iLots=NormalizeDouble(Lots*MathPow(LotExponent,NumOfTrades),lotdecimal); RefreshRates(); ticket=OpenPendingOrder(1,iLots,Bid,slip,Ask,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,HotPink); if(ticket<0) { Print("Error: ",GetLastError()); return (0); } LastSellPrice=FindLastSellPrice(); TradeNow=FALSE; NewOrdersPlaced=TRUE; } else { if(LongTrade) { NumOfTrades=total; iLots=NormalizeDouble(Lots*MathPow(LotExponent,NumOfTrades),lotdecimal); ticket=OpenPendingOrder(0,iLots,Ask,slip,Bid,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,Lime); if(ticket<0) { Print("Error: ",GetLastError()); return (0); } LastBuyPrice=FindLastBuyPrice(); TradeNow=FALSE; NewOrdersPlaced=TRUE; } } } if(TradeNow && total<1) { PrevCl = iClose(Symbol(), 0, 2); CurrCl = iClose(Symbol(), 0, 1); SellLimit= Bid; BuyLimit = Ask; if(!ShortTrade && !LongTrade) { NumOfTrades=total; iLots=NormalizeDouble(Lots*MathPow(LotExponent,NumOfTrades),lotdecimal); if(PrevCl>CurrCl) { if(iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,1)>RsiMinimum) { ticket=OpenPendingOrder(1,iLots,SellLimit,slip,SellLimit,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,HotPink); if(ticket<0) { Print("Error: ",GetLastError()); return (0); } LastBuyPrice=FindLastBuyPrice(); NewOrdersPlaced=TRUE; } } else { if(iRSI(NULL,PERIOD_H1,14,PRICE_CLOSE,1)<RsiMaximum) { ticket=OpenPendingOrder(0,iLots,BuyLimit,slip,BuyLimit,0,0,EAName+"-"+NumOfTrades,MagicNumber,0,Lime); if(ticket<0) { Print("Error: ",GetLastError()); return (0); } LastSellPrice=FindLastSellPrice(); NewOrdersPlaced=TRUE; } } if(ticket>0) expiration=TimeCurrent()+60.0 *(60.0*MaxTradeOpenHours); TradeNow=FALSE; } } total=CountTrades(); AveragePrice = 0; double Count = 0; for(cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY || OrderType()==OP_SELL) { AveragePrice+=OrderOpenPrice()*OrderLots(); Count+=OrderLots(); } } } if(total>0) AveragePrice=NormalizeDouble(AveragePrice/Count,Digits); if(NewOrdersPlaced) { for(cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { PriceTarget= AveragePrice + TakeProfit * Point; BuyTarget=PriceTarget; Stopper=AveragePrice-Stoploss*Point; flag=TRUE; } } if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_SELL) { PriceTarget= AveragePrice - TakeProfit * Point; SellTarget = PriceTarget; Stopper=AveragePrice+Stoploss*Point; flag=TRUE; } } } } if(NewOrdersPlaced) { if(flag == TRUE) { for(cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()== Symbol() && OrderMagicNumber() == MagicNumber) OrderModify(OrderTicket(),AveragePrice,OrderStopLoss(),PriceTarget,0,Yellow); NewOrdersPlaced = FALSE; } } } return (0); } //ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí int CountTrades() { int count=0; for(int trade=OrdersTotal()-1; trade>=0; trade--) { OrderSelect(trade,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) if(OrderType()==OP_SELL || OrderType()==OP_BUY) count++; } return (count); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí void CloseThisSymbolAll() { for(int trade=OrdersTotal()-1; trade>=0; trade--) { OrderSelect(trade,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, slip, Blue); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, slip, Red); } Sleep(1000); } } } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí int OpenPendingOrder(int pType,double pLots,double pLevel,int sp,double pr,int sl,int tp,string pComment,int pMagic,int pDatetime,color pColor) { int ticket=0; int err=0; int c=0; int NumberOfTries=100; switch(pType) { case 2: for(c=0; c<NumberOfTries; c++) { ticket=OrderSend(Symbol(),OP_BUYLIMIT,pLots,pLevel,sp,StopLong(pr,sl),TakeLong(pLevel,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(1000); } break; case 4: for(c=0; c<NumberOfTries; c++) { ticket=OrderSend(Symbol(),OP_BUYSTOP,pLots,pLevel,sp,StopLong(pr,sl),TakeLong(pLevel,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(5000); } break; case 0: for(c=0; c<NumberOfTries; c++) { RefreshRates(); ticket=OrderSend(Symbol(),OP_BUY,pLots,Ask,sp,StopLong(Bid,sl),TakeLong(Ask,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(5000); } break; case 3: for(c=0; c<NumberOfTries; c++) { ticket=OrderSend(Symbol(),OP_SELLLIMIT,pLots,pLevel,sp,StopShort(pr,sl),TakeShort(pLevel,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(5000); } break; case 5: for(c=0; c<NumberOfTries; c++) { ticket=OrderSend(Symbol(),OP_SELLSTOP,pLots,pLevel,sp,StopShort(pr,sl),TakeShort(pLevel,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(5000); } break; case 1: for(c=0; c<NumberOfTries; c++) { ticket=OrderSend(Symbol(),OP_SELL,pLots,Bid,sp,StopShort(Ask,sl),TakeShort(Bid,tp),pComment,pMagic,pDatetime,pColor); err=GetLastError(); if(err==0/* NO_ERROR */) break; if(!(err==4/* SERVER_BUSY */ || err==137/* BROKER_BUSY */ || err==146/* TRADE_CONTEXT_BUSY */ || err==136/* OFF_QUOTES */)) break; Sleep(5000); } } return (ticket); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí double StopLong(double price,int stop) { if(stop == 0) return (0); else return (price - stop * Point); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double StopShort(double price,int stop) { if(stop == 0) return (0); else return (price + stop * Point); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double TakeLong(double price,int stop) { if(stop == 0) return (0); else return (price + stop * Point); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double TakeShort(double price,int stop) { if(stop == 0) return (0); else return (price - stop * Point); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí double CalculateProfit() { double Profit=0; for(cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY || OrderType()==OP_SELL) Profit+=OrderProfit(); } return (Profit); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí void TrailingAlls(int pType,int stop,double AvgPrice) { int profit; double stoptrade; double stopcal; if(stop!=0) { for(int trade= OrdersTotal()-1; trade>= 0; trade--) { if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() || OrderMagicNumber()==MagicNumber) { if(OrderType()==OP_BUY) { profit=NormalizeDouble((Bid-AvgPrice)/Point,0); if(profit<pType) continue; stoptrade=OrderStopLoss(); stopcal=Bid-stop*Point; if(stoptrade==0.0 || (stoptrade!=0.0 && stopcal>stoptrade)) OrderModify(OrderTicket(),AvgPrice,stopcal,OrderTakeProfit(),0,Aqua); } if(OrderType()==OP_SELL) { profit=NormalizeDouble((AvgPrice-Ask)/Point,0); if(profit<pType) continue; stoptrade=OrderStopLoss(); stopcal=Ask+stop*Point; if(stoptrade==0.0 || (stoptrade!=0.0 && stopcal<stoptrade)) OrderModify(OrderTicket(),AvgPrice,stopcal,OrderTakeProfit(),0,Red); } } Sleep(1000); } } } } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí double AccountEquityHigh() { if(CountTrades()==0) AccountEquityHighAmt=AccountEquity(); if(AccountEquityHighAmt<PrevEquity) AccountEquityHighAmt=PrevEquity; else AccountEquityHighAmt=AccountEquity(); PrevEquity=AccountEquity(); return (AccountEquityHighAmt); } //íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí double FindLastBuyPrice() { double oldorderopenprice; int oldticketnumber; double unused=0; int ticketnumber=0; for(int cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderType()==OP_BUY) { oldticketnumber=OrderTicket(); if(oldticketnumber>ticketnumber) { oldorderopenprice=OrderOpenPrice(); unused=oldorderopenprice; ticketnumber=oldticketnumber; } } } return (oldorderopenprice); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double FindLastSellPrice() { double oldorderopenprice; int oldticketnumber; double unused=0; int ticketnumber=0; for(int cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && OrderType()==OP_SELL) { oldticketnumber=OrderTicket(); if(oldticketnumber>ticketnumber) { oldorderopenprice=OrderOpenPrice(); unused=oldorderopenprice; ticketnumber=oldticketnumber; } } } return (oldorderopenprice); } //ííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí //--------------------Íà÷èíàåì ðàñòèòü øàã ñïóñòÿ StartStepExp êîëåí------------------------------- double PipStepExp(int Step) { double QStepEx = 0; if(QuantumStep == true && Step >= StartStepExp) QStepEx=PipStepExponent; else QStepEx=1; return (QStepEx); } //==================== Ñ÷èòàåì êîëåíè ============================ int TradeStepExp(int Trades) { double TradeStep=0; if(QuantumStep==true && Trades>=StartStepExp) TradeStep=Trades-StartStepExp+1; else TradeStep=Trades; return (TradeStep); } //+------------------------------------------------------------------+ Vitalii Vakulin 2018.09.17 17:27 #813 然もありなん ファイル: Screenshot_24.jpg 273 kb Screenshot_25.jpg 279 kb Vitalii Vakulin 2018.09.17 17:38 #814 皆さん、何かアドバイスはありますか? Maksim Sovenko 2018.09.17 17:40 #815 Vitali_Leto: このように一歩一歩進んでいきましょう。 int PipStepE=NormalizeDouble 整数型の 変数を宣言し、小数値を正規化した場合。 Maksim Sovenko 2018.09.17 17:41 #816 OrderSelect OrderModifyチェックがあるはずだが、致命的にない Vitalii Vakulin 2018.09.17 17:42 #817 Maksim Sovenko:一歩一歩進んでいきましょう。 整数型 変数を宣言し、小数値を正規化している。それを理解していれば Vitalii Vakulin 2018.09.17 17:44 #818 解決策が必要だ処方箋が必要だ昨日のように動揺している Maksim Sovenko 2018.09.17 17:48 #819 Vitali_Leto: 解決策が欲しい、昨日と同じように書いてみる。整数型の変数を宣言し、小数値を正規化した場合、特に矛盾が 生じる」について いや、そんなことはない。 今忙しいので、明日調べて報告します。 Vitalii Vakulin 2018.09.17 17:49 #820 Maksim Sovenko:整数型の変数を宣言し、小数値を正規化した場合、特に矛盾が 生じる」について いや、そんなことはない。 今忙しいので、明日調べて報告します。感謝します! 1...757677787980818283848586878889...171 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
警告について、どなたか教えてください。
コードと対応する警告を表示します。
このように
一歩一歩進んでいきましょう。
整数型の 変数を宣言し、小数値を正規化した場合。
チェックがあるはずだが、致命的にない
一歩一歩進んでいきましょう。
整数型 変数を宣言し、小数値を正規化している。
それを理解していれば
解決策が欲しい、昨日と同じように書いてみる。
整数型の変数を宣言し、小数値を正規化した場合、特に矛盾が 生じる」について
いや、そんなことはない。
今忙しいので、明日調べて報告します。
整数型の変数を宣言し、小数値を正規化した場合、特に矛盾が 生じる」について
いや、そんなことはない。
今忙しいので、明日調べて報告します。
感謝します!