[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 148 1...141142143144145146147148149150151152153154155...432 新しいコメント Mikhail Kozhemyako 2013.02.10 09:31 #1471 Konstebl:EAが取引を開始しない理由を教えてください Error 130.Stop Loss = 55 pips (4 digits of quotes) あなたのEAを少し改造してみました。初値を 間違えないようにプロテクトをかけた。 extern int PeriodLWMA=14; extern int tp=55; extern int sl=55; extern double MaxRisk=10; extern double Lot=0.1; bool NewBar() { static datetime lastbar = 0; datetime curbar = iTime(Symbol(), 0, 0); if(lastbar!=curbar) { lastbar=curbar; return (true); } return(false); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int ticket; double price,takeprofit,stoploss,Lots; //---- double frUP = iFractals(NULL,0,MODE_UPPER,3); double frLOW = iFractals(NULL,0,MODE_LOWER,3); double lwma = iMA(NULL,0,PeriodLWMA,0,MODE_LWMA,PRICE_CLOSE,0); frUP = iFractals(NULL,0,MODE_UPPER,3); frLOW = iFractals(NULL,0,MODE_LOWER,3); double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT); double MinLot = MarketInfo(Symbol(),MODE_MINLOT); Lots = NormalizeDouble(AccountFreeMargin()/10*MaxRisk/1000,2); if(Lots>MaxLot) Lots = MaxLot; else Lots=Lot; if(Lots<MinLot) Lots = Lot; //---- static bool flag = true; if(NewBar()) flag = true; if(Ask>lwma && frUP>Ask && frUP != EMPTY_VALUE && flag) { price = NormalizeDouble(frUP+(Ask-Bid)+30*Point,Digits); takeprofit = NormalizeDouble(price+tp*Point,Digits); stoploss = NormalizeDouble(price-sl*Point,Digits); ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,price,5,stoploss,takeprofit,"Fractal",123,0,Blue); if(ticket>0 && GetLastError()==0) flag = false; // Печатаем ошибку только в том случае, если она действительно случилась else Print("Ошибка № ",GetLastError()," OP_BUYSTOP Ask=",DoubleToStr(Ask,8)," Bid=",DoubleToStr(Bid,8)," OpenPrice=",DoubleToStr(price,8)," sl=",DoubleToStr(stoploss,8)," tp=",DoubleToStr(takeprofit,8)); return(ticket); } //------------------------------------------------------------------- if(NewBar()) flag = true; if(Bid<lwma && frLOW<Bid && frLOW>0 && frLOW!=EMPTY_VALUE && flag) { price = NormalizeDouble(frLOW-30*Point,Digits); takeprofit = NormalizeDouble(price-tp*Point,Digits); stoploss = NormalizeDouble(price+sl*Point,Digits); ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,price,5,stoploss,takeprofit,"Fractal",123,0,Red); if(ticket>0 && GetLastError()==0) flag = false; // Печатаем ошибку только в том случае, если она действительно случилась else Print("Ошибка № ",GetLastError()," OP_SELLSTOP Ask=",DoubleToStr(Ask,8)," Bid=",DoubleToStr(Bid,8)," OpenPrice=",DoubleToStr(price,8)," sl=",DoubleToStr(stoploss,8)," tp=",DoubleToStr(takeprofit,8)); return(ticket); } } first_may 2013.02.10 09:56 #1472 Vinin: そして、このオプションは 適さない。最高ではない。 調べてみましたが、残念ながら違うようです。キャンドルをそっくりそのまま描きたい。 Konstantin Drozdov 2013.02.10 10:47 #1473 ありがとうございました。 arabon 2013.02.10 11:49 #1474 Vinin: うまくいきますが、結果は違ってきます。期待しているものとは違う何が問題なのか、教えてください。慣れない機能を持つこのプログラムを使いこなすのは、やはり難しいですね。ありがとうございました。 Victor Nikolaev 2013.02.10 13:26 #1475 arabon: 何が問題なのか、教えてください。慣れない機能で、このプログラムを使いこなすのは、やはり大変です。ありがとうございました。 double CalculateProfit_last() {//прибыль от последенй сделки double Profit = 0; int cnt; if(OrdersTotal()!=0) { cnt = OrdersTotal() - 1; OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit = OrderProfit(); } Profit=0.0; // Зачем вести расчеты, если потом их обнулить Print(Profit); return (Profit); } そして、どのような順番で話を進めていくのか。最後のオープンまたは最後のクローズオーダーについて話しています。唯一無二の存在であれば、疑問は消えます。 arabon 2013.02.10 21:19 #1476 Vinin: また、どの順番で話を進めているのでしょうか?最後のオープンオーダーまたは最後のクローズオーダー。唯一無二の存在であれば、その疑問は消える。最後に閉じた注文の利益を計算する必要があるのですが、もちろんそれだけではありません。P.S.なぜか吹き出してしまいました =) } Profit=0.0; // Зачем вести расчеты, если потом их обнулить Print(Profit); return (Profit); } IGHud 2013.02.11 03:17 #1477 こんにちは。このコードはテスト用です。まず、行番号を表示させるにはどうしたらいいのか。 さらに言うと、上記のコード「ca[1]=Low[100]; Only this variant is reassigned」において、配列内のデータはループ内部でのみ再代入 されます。おそらく、チャートデータを表示するために配列を割り当てた場合、一度しか再割り当てできないのではないでしょうか?int start(){int i=0 ;int k=0 ; while(i<=5000) { k=0 ; ca[i]=0; volume[i]=0; while(k<=10) {ca[i]= ca[i]+Volume[i+k]*(High[i+k]+Low[i+k])/2; volume[i]=volume[i]+Volume[i+k]; k=k+1; } ca[i]=ca[i]/volume[i]; i=i+1;//ca[1]=Low[100]; Переобозначение происходит только в этом варианте } ca[1]=Low[100];//Переобозначение не происходит программа не видит int a1=1; while(a1==1)//Переобозначение не происходит программа не видит {ca[1]=Low[100]; a1=a1+1;} return(0); } [ARCHIVE]Any rookie question, so Help me friends,troubles me How to code? IGHud 2013.02.11 03:37 #1478 どうやら自分の質問に答えてしまったようだ。int start(){int i=0 ;int k=0 ; while(i<=500) { k=0 ; ca1[i]=0; volume[i]=0; while(k<=10) {ca1[i]= ca1[i]+Volume[i+k]*(High[i+k]+Low[i+k])/2; volume[i]=volume[i]+Volume[i+k]; k=k+1; } ca1[i]=ca1[i]/volume[i]; i=i+1; } ca1[0]=Low[100];//Переобозначение происходит программа Видит //Цикл заполнения массива для отображения значений функции i=0; while(i<=500)//Переобозначение происходит программа Видит {ca[i]=ca1[i]; i=i+1;} return(0); } Leonid Borsky 2013.02.11 10:12 #1479 T-G: 買いポジションと売りポジションで資金(AccountEquity())と担保(AccountMargin())が別々になっているのですが、どのように分けているのか教えてください。 I. Kimのcustom fi ndingsにこれらのfindingsがあるかどうか確認してください: https://www.mql5.com/ru/forum/131859С T-G 2013.02.11 10:17 #1480 すみません。leonid553:I. Kimのcustom fi ndingsにこれらのfindingsがあるかどうか確認してください: https://www.mql5.com/ru/forum/131859С 残念ながら、見つかりませんでした。 1...141142143144145146147148149150151152153154155...432 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
EAが取引を開始しない理由を教えてください Error 130.Stop Loss = 55 pips (4 digits of quotes)
あなたのEAを少し改造してみました。初値を 間違えないようにプロテクトをかけた。
そして、このオプションは 適さない。最高ではない。
調べてみましたが、残念ながら違うようです。キャンドルをそっくりそのまま描きたい。
うまくいきますが、結果は違ってきます。期待しているものとは違う
何が問題なのか、教えてください。慣れない機能を持つこのプログラムを使いこなすのは、やはり難しいですね。
ありがとうございました。
何が問題なのか、教えてください。慣れない機能で、このプログラムを使いこなすのは、やはり大変です。
ありがとうございました。
そして、どのような順番で話を進めていくのか。最後のオープンまたは最後のクローズオーダーについて話しています。唯一無二の存在であれば、疑問は消えます。
また、どの順番で話を進めているのでしょうか?最後のオープンオーダーまたは最後のクローズオーダー。唯一無二の存在であれば、その疑問は消える。
最後に閉じた注文の利益を計算する必要があるのですが、もちろんそれだけではありません。
P.S.なぜか吹き出してしまいました =)
こんにちは。このコードはテスト用です。まず、行番号を表示させるにはどうしたらいいのか。
さらに言うと、上記のコード「ca[1]=Low[100]; Only this variant is reassigned」において、配列内のデータはループ内部でのみ再代入 されます。おそらく、チャートデータを表示するために配列を割り当てた場合、一度しか再割り当てできないのではないでしょうか?
買いポジションと売りポジションで資金(AccountEquity())と担保(AccountMargin())が別々になっているのですが、どのように分けているのか教えてください。
I. Kimのcustom fi ndingsにこれらのfindingsがあるかどうか確認してください: https://www.mql5.com/ru/forum/131859
С
I. Kimのcustom fi ndingsにこれらのfindingsがあるかどうか確認してください: https://www.mql5.com/ru/forum/131859
С
残念ながら、見つかりませんでした。