ロボットのこと、どうして動かないのか、誰が助けてくれるの? - ページ 3 1234567 新しいコメント Dmitriy Gizlyk 2016.02.10 18:03 #21 GIMの場合 注文を出すだけなら、SL / TPの代わりに0を指定します。SLまたはTPが0の場合は、リクエストに0を入力する必要があり、値を入力した場合は、注文が終了する価格を 計算する必要があります。 GIM 2016.02.10 18:33 #22 Dmitriy Gizlyk: GIMの場合 注文を出すだけなら、SL / TPの代わりに0を指定します。そして、今後のために確認しなければならないのは、SLやTPが0であれば、リクエストに0を指定することです。 そして、値を指定した場合は、注文の終値を 計算します。 Expert Advisorで、全取引の合計利益に応じて、注文を開始・終了してほしいのですが・・・。 Vitalii Ananev 2016.02.11 07:07 #23 AdikAmir:extern double Lots=0.1;extern intnal double FastMAPeriod=5;extern int FastMAMethod=0; // 0-SMA、1-EMA、2-SMMA、4-LWMAextern int FastMAPrice=0; // 0-クローズ、1-オープン、2-ハイ、3-ロー、4-メディアン、5-タイピカル、6-ウェイトドextern int SlowMAPeriod=75;extern intn SlowMAMethod=3; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMAextern int SlowMAPrice=3; // 0-Close、1-Open、2-High、3-Low、4-Median、5-Typical、6-Weightedextern int TP=500; //takeprofitextern int SL=250; //ストップ・ロスダブルチケint start(){double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1);double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,1);double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2);double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod,SlowMAPrice,2);if (注文合計()==0){if (fast_ma1>slow_ma1 && (fast_ma2<slow_ma2)){ ticet = OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE)。if (ticet==0) Print("ERROR");}if (slow_ma1>fast_ma1 && (slow_ma2<fast_ma2)){ticet = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE)。if (ticet==0) Print("ERROR");}}return(0)です。}ログを読むコンパイル時に検出されなかったエラーに関するメッセージが表示されることがあります。ここでエラーが発生しました OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE);を実行する必要があります。 OrderSend(Symbol(),OP_SELL,Lots,Bid,Bid,3,Ask+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE) を実行する必要があります。売りの場合、ストップロスは現在の価格より上、テイクは下であるべきです。 あなたの場合、逆にストップを価格より下に置き、テイクは上にあります。 Dmitriy Gizlyk 2016.02.11 13:05 #24 GIM: Expert Advisorで、全取引の合計利益で注文を開始・終了してほしいのですが・・・。この場合、ポジションを建てる ときは、SL=0, TP=0とします。ポジションを閉じるには、各ティックで得られた利益と設定値を比較し、利益が設定値に達したら、OrderClose(...)でループ内のすべての注文を閉じる必要があります。現在の利益の決定に関しては、設定された課題によって差異が生じる可能性がある。口座の利益を見るのであれば、単純にAccountProfit()を取れば良いのですが、より手間がかかるのはループを通す方法でしょう(そうすれば、必要な注文だけ利益を計算することができます)。 double profit=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== /* Ваш магик */) { profit+=OrderProfit()+OrderSwap()+OrderCommission(); } } GIM 2016.02.11 13:15 #25 Dmitriy Gizlyk:この場合、ポジションを建てる ときは、SL=0, TP=0とします。ポジションを閉じるには、各ティックで得られた利益と設定値を比較し、利益が設定値に達したら、OrderClose(...)でループ内のすべての注文を閉じる必要があります。現在の利益の決定に関しては、設定された課題によって差異が生じる可能性がある。口座ごとの利益を見るなら、単純にAccountProfit()を取ればいいのですが、おそらくより手間のかかる方法はサイクルによるものでしょう(そうすれば、必要な注文だけ利益を計算することができるのです)。extern double lots = 0.01; extern int stop_loss = 0; extern int take_profit = 0; int last_bar = 0; int start(){ if (last_bar == Bars) return(0); last_bar = Bars; if (OrdersTotal() == 0){ OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, Bid - stop_loss * Point, Ask + take_profit * Point, "", 1, 0, clrBlue); OrderSend(Symbol(), OP_SELL, lots ,Bid, 50, Ask+ stop_loss * Point, Bid - take_profit * Point, "", 1, 0, clrRed); } return(0); } double profit=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== /* Ваш магик */) { profit+=OrderProfit()+OrderSwap()+OrderCommission(); } } Dmitriy Gizlyk 2016.02.11 14:32 #26 GIM: ストップロスとテイクプロフィットが入金通貨 である場合 extern double lots = 0.01; extern int stop_loss = 10; /* Указываем в валюте депозита */ extern int take_profit = 20; /* Указываем в валюте депозита */ extern int Magic = 1; int last_bar = 0; int start(){ if (last_bar == Bars) return(0); last_bar = Bars; if (OrdersTotal() == 0){ OrderSend(Symbol(), OP_BUY, lots ,Ask, 50, 0, 0, "", Magic, 0, clrBlue); OrderSend(Symbol(), OP_SELL, lots ,Bid, 50, 0, 0, "", Magic, 0, clrRed); } double profit=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic) { profit+=OrderProfit()+OrderSwap()+OrderCommission(); } } int requot=0; if(profit>=take_profit || (-profit)>=stop_loss) for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic) { if(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),50,clrRed)) requot=0; else { requot++; } if(requot>10) { i++; requot=0; } i--; } } return(0); } GIM 2016.02.11 14:39 #27 Dmitriy Gizlyk: ストップロス、テイクプロフィットが入金通貨で 指定されている場合 for(int i=0;i<OrdersTotal();i++)エラー:"i" GIM 2016.02.13 17:57 #28 誰がわかる? extern int Magic = 1; что означает?? 削除済み 2016.02.13 18:01 #29 GIM: 誰が知っている Expert Advisorの注文の識別子で、自身の注文でのみ動作するようにします。 GIM 2016.02.13 18:05 #30 Vladimir Zubov:Expert Advisorの注文の識別子で、自身の注文でのみ動作するようにします。 自分の命令だけとは...。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
注文を出すだけなら、SL / TPの代わりに0を指定します。SLまたはTPが0の場合は、リクエストに0を入力する必要があり、値を入力した場合は、注文が終了する価格を 計算する必要があります。
GIMの場合
注文を出すだけなら、SL / TPの代わりに0を指定します。そして、今後のために確認しなければならないのは、SLやTPが0であれば、リクエストに0を指定することです。 そして、値を指定した場合は、注文の終値を 計算します。
ログを読むコンパイル時に検出されなかったエラーに関するメッセージが表示されることがあります。
ここでエラーが発生しました OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE);
を実行する必要があります。 OrderSend(Symbol(),OP_SELL,Lots,Bid,Bid,3,Ask+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE) を実行する必要があります。
売りの場合、ストップロスは現在の価格より上、テイクは下であるべきです。 あなたの場合、逆にストップを価格より下に置き、テイクは上にあります。
Expert Advisorで、全取引の合計利益で注文を開始・終了してほしいのですが・・・。
この場合、ポジションを建てる ときは、SL=0, TP=0とします。
ポジションを閉じるには、各ティックで得られた利益と設定値を比較し、利益が設定値に達したら、OrderClose(...)でループ内のすべての注文を閉じる必要があります。
現在の利益の決定に関しては、設定された課題によって差異が生じる可能性がある。口座の利益を見るのであれば、単純にAccountProfit()を取れば良いのですが、より手間がかかるのはループを通す方法でしょう(そうすれば、必要な注文だけ利益を計算することができます)。
この場合、ポジションを建てる ときは、SL=0, TP=0とします。
ポジションを閉じるには、各ティックで得られた利益と設定値を比較し、利益が設定値に達したら、OrderClose(...)でループ内のすべての注文を閉じる必要があります。
現在の利益の決定に関しては、設定された課題によって差異が生じる可能性がある。口座ごとの利益を見るなら、単純にAccountProfit()を取ればいいのですが、おそらくより手間のかかる方法はサイクルによるものでしょう(そうすれば、必要な注文だけ利益を計算することができるのです)。
ストップロス、テイクプロフィットが入金通貨で 指定されている場合
for(int i=0;i<OrdersTotal();i++)
エラー:"i"
誰が知っている
Expert Advisorの注文の識別子で、自身の注文でのみ動作するようにします。
Expert Advisorの注文の識別子で、自身の注文でのみ動作するようにします。