"ダミー "からの質問 - ページ 51 1...444546474849505152535455565758...277 新しいコメント Andrey Ustinov 2011.08.19 00:35 #501 papaklass さん、ありがとうございます!うまくいきました!今度は違いを理解 するようにします。 Europa 2011.08.19 09:21 #502 Expert Advisorがこのコードにぶら下がっている理由。if(Orders_Total!=0) { for(i=Orders_Total;i>=0;i--) { Alert(Orders_Total); if(Symbol()==PositionGetSymbol(i)) { OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); OrderLot = PositionGetDouble(POSITION_VOLUME); StopLoss = PositionGetDouble(POSITION_SL); TakeProfit=PositionGetDouble(POSITION_TP); if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { for(i=0;i<12;i++) { if(Price[i].low<lowest) { lowest=Price[i].low; } } Alert(lowest); SL=NormalizeDouble(lowest-spread-_Point,_Digits); if(StopLoss<SL) { request.action=TRADE_ACTION_SLTP; request.symbol=_Symbol; request.volume= OrderLot; request.sl=SL; request.tp=TakeProfit; request.type=ORDER_TYPE_BUY; OrderSend(request,result); } } if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { for(i=0;i<12;i++) { if(Price[i].high>highest) { highest=Price[i].high; } } Alert(highest); SL=NormalizeDouble(highest+spread+_Point,_Digits); if(StopLoss>SL) { request.action=TRADE_ACTION_SLTP; request.symbol=_Symbol; request.volume= OrderLot; request.sl=SL; request.tp=TakeProfit; request.type=ORDER_TYPE_SELL; OrderSend(request,result); } } } } } アラートOrders_Total=2 lowestとhighも適切な値を与えますが、エキスパートがこのループでハングし、アラートの数が無限に増え、他のエラー(注文変更に関する)は与えられません。初心者にわかるように教えてください :) Slava 2011.08.19 09:27 #503 1つの外側サイクルと2つの内側サイクルの場合、外側サイクルの新しい反復のたびに12になる同じサイクル変数iは Europa 2011.08.19 09:42 #504 stringo:1つの外側サイクルと2つの内側サイクルの場合、外側サイクルの新しい反復のたびに12になる同じサイクル変数iは ありがとうございます!!! Nauris Zukas 2011.08.19 14:33 #505 コードを修正できますか?現在のバーの始値が 必要です。よろしくお願いします。double Open[], val4; ArraySetAsSeries(Open,true); CopyOpen(Symbol_, PERIOD_M15,1,0,Open); val4 = (Open[ArrayMinimum(Open,0,1)] ); Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы www.mql5.com Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5 Yedelkin 2011.08.19 17:01 #506 abeiks: コードを修正できますか?現在のバーの始値が 必要です。よろしくお願いします。 "Symbol_"は間違ったパラメータです。 また、コピーされたアイテムの数は0個です。 Olegs Kucerenko 2011.08.20 10:12 #507 iCustomを通して 外部インジケータをEAに接続した場合、入力パラメータを動的に変更することができません。ma_handle = iCustom(_Symbol,0,"Examples\\JJMA.ex5",MA,4); ma_handle = iMA(_Symbol,0, MA,0, MODE_EMA, PRICE_CLOSE); このように、外部のものでは変更できないものであれば、なぜEAにコードを埋め込む必要があるのでしょうか?申し訳ありませんが、動作はしますが、時間がかなりかかります。 Yedelkin 2011.08.20 10:40 #508 Karlson: iCustomを通して EAに外部インジケータを接続すると、入力パラメータを動的に変更することができません。この場合、EAで変更できないものは、EAにコードを埋め込むにはどうすればよいのでしょうか? インジケーターの「...入力パラメータを動的に変更することができない」? インジケータの入力パラメータを Expert Advisorの入力パラメータとして再現します。また、ハンドルは新しいティックごとに取得するのではなく、Expert Advisorの初期化時に一度だけ取得する方がよいでしょう。 Olegs Kucerenko 2011.08.20 11:35 #509 Yedelkin:インジケーターの「...入力パラメータを動的に変更できない」?インジケータの入力パラメータを Expert Advisorの入力パラメータとして再現します。また、Expert Advisor を初期化する際に、新しいティックごとにハンドルを取得するよりも、一度取得したほうがよいでしょう。私は平均の期間がEAの作業中にATRから変化するので、平均のハンドルはOnTick()に配置されています。 実際には、EAの入力パラメータはATRの期間であり、それは変更されません。int OnInit() { atr_handle = iATR(_Symbol,0, ATR); //инициализируем хэндл ATR } void OnTick() { CopyBuffer(atr_handle,0,0,5,atr); //заполняем массив ATR ArraySetAsSeries(atr,true); MA=(int)(atr[1]*kMA); //рассчитываем период требуемый для средней от ATR //ma_handle = iCustom(_Symbol,0,"Examples\\JJMA.ex5",MA,4); // получаем хэндл средней ma_handle = iMA(_Symbol,0, MA,0, MODE_EMA, PRICE_CLOSE); CopyBuffer(ma_handle,0,0,5,ma); //заполняем массив средней ArraySetAsSeries(ma,true); } Yedelkin 2011.08.20 13:43 #510 Karlson:EAの実行中にATRから変化する平均期間があるので、平均のハンドルはOnTick()に置かれています。実際にはEAへの入力パラメータは ATR期間ですが、OnInit()ではATRを変化させません。 おおよそ理解できました。しかし、新しいティックで毎回インジケーターのハンドルを取得することは困難です。また、前のハンドルネームはどうするのですか? 1...444546474849505152535455565758...277 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
papaklass さん、ありがとうございます!うまくいきました!今度は違いを理解 するようにします。
Expert Advisorがこのコードにぶら下がっている理由。
アラートOrders_Total=2 lowestとhighも適切な値を与えますが、エキスパートがこのループでハングし、アラートの数が無限に増え、他のエラー(注文変更に関する)は与えられません。
初心者にわかるように教えてください :)
1つの外側サイクルと2つの内側サイクルの場合、外側サイクルの新しい反復のたびに12になる同じサイクル変数iは
1つの外側サイクルと2つの内側サイクルの場合、外側サイクルの新しい反復のたびに12になる同じサイクル変数iは
コードを修正できますか?現在のバーの始値が 必要です。よろしくお願いします。
コードを修正できますか?現在のバーの始値が 必要です。よろしくお願いします。
"Symbol_"は間違ったパラメータです。
また、コピーされたアイテムの数は0個です。
iCustomを通して 外部インジケータをEAに接続した場合、入力パラメータを動的に変更することができません。
このように、外部のものでは変更できないものであれば、なぜEAにコードを埋め込む必要があるのでしょうか?
申し訳ありませんが、動作はしますが、時間がかなりかかります。
iCustomを通して EAに外部インジケータを接続すると、入力パラメータを動的に変更することができません。
この場合、EAで変更できないものは、EAにコードを埋め込むにはどうすればよいのでしょうか?
インジケーターの「...入力パラメータを動的に変更することができない」?
インジケータの入力パラメータを Expert Advisorの入力パラメータとして再現します。また、ハンドルは新しいティックごとに取得するのではなく、Expert Advisorの初期化時に一度だけ取得する方がよいでしょう。
インジケーターの「...入力パラメータを動的に変更できない」?
インジケータの入力パラメータを Expert Advisorの入力パラメータとして再現します。また、Expert Advisor を初期化する際に、新しいティックごとにハンドルを取得するよりも、一度取得したほうがよいでしょう。
私は平均の期間がEAの作業中にATRから変化するので、平均のハンドルはOnTick()に配置されています。 実際には、EAの入力パラメータはATRの期間であり、それは変更されません。
EAの実行中にATRから変化する平均期間があるので、平均のハンドルはOnTick()に置かれています。実際にはEAへの入力パラメータは ATR期間ですが、OnInit()ではATRを変化させません。