[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 896 1...889890891892893894895896897898899900901902903...1145 新しいコメント Igor Makanu 2010.10.09 07:39 #8951 belck: このようにテイクプロフィットを設定したいのです。 if (TakeProfit<10*Point) TakeProfit=10*Point; インジケーターの線が一定時間後に位置を変えてしまうのですが、テイクプロフィットが変化せず、オープン時に設定したままの状態にするにはどうしたらよいでしょうか? TPは通常、注文時に計算され、注文に割り当てられるので、OrderModify()を使って変更する必要があります。 削除済み 2010.10.09 10:26 #8952 IgorM: 通常、TPは注文時に計算され、注文に割り当てられるので、OrderModify()で変更する必要があります。 ご指摘ありがとうございます。 Dimka-novitsek 2010.10.09 17:53 #8953 EAを作ったばかりで、トレーニングを続け、毎回すべてが速くなっているのですが、取引できません。 もし可能であれば、アドバイスをお願いします。 //+------------------------------------------------------------------+ | ディモンズ ボーダーズ .mq4 //| 著作権 © 2010, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright"著作権 © 2010, MetaQuotes Software Corp." #プロパティリンク "http://www.metaquotes.net" //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ extern int BandsPeriod=20,i=1 ;extern int BandsShift=0; extern double BandsDeviations=2.0; extern double Lots=0.1,TakeProfit=50,stoploss=10。 int init() {平均値。 //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| 専門家による初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0)です。 } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() {double Average,Upper Border,Lower Border,newres,sum,deviation; 平均=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i)となります。 //---- newres=Close[i]-Average; sum=newres*newres。 deviation=BandsDeviations*MathSqrt(sum/BandsPeriod) となります。 上界=平均+偏差。 下限値=平均値+偏差値。 //---- if (上界面<下界[i]) {コメント(" buoy! ",Upper Boundary ); OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*ポイント, Ask+TakeProfit*Point, "macd sample",16384,0,Green).OrderSend(Lots, Ask, 16384, 0,Green); } if (下限値>終値[i]) { Comment(" sell! ",Bottom Border ); OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red) を実行します。 } return(0)です。 } //+------------------------------------------------------------------+ 英語以外の変数で申し訳ないです。 [WARNING CLOSED!] Any newbie [ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. [ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you 削除済み 2010.10.09 18:14 #8954 VOLDEMAR: こんにちは!何が問題なのかがわからないのですが、「?成行注文を変更しない slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // 買いポジションのストップを計算する//。 tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //買いポジションの利益を計算する//。 sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //売りポジションのストップ高を計算する///。 tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits); //================================================== ==================// int total=OrdersTotal(); int n=0; for (int i=total-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS)) { if(OrderSymbol()==Symbol())とする。 { n++; }}} if ( 合計 == 1 ) { for (int k=total-1; k>=0; k--) { if(OrderSelect(k, SELECT_BY_TICKET)) Alert("order exists", k); { if ((オーダータイプ()==OP_BUY)&&(OderTakeProfit()==0)&&(OderStopLoss()==0)) { OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue); Alert("error", GetLastError()); }}}} return(0);}。 どうしたものか..............................助けてくれという場合でも、このように試してみることができます。 double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits); if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point; double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits); if (TakeProfitSell<25*Point) TakeProfitSell=25*Point; 削除済み 2010.10.09 18:38 #8955 何がベストなのか。 - どのペアをどの期間で取引するか、アドバイザーに指定する。 または - 必要なプリセットタイムフレームの通貨ペアのチャートにEAを投入する。 ?? 削除済み 2010.10.09 18:50 #8956 もうひとつだけ......気の利いたことを言わないでください、あらかじめ書いているのです、そうでないと、あまり気持ちのいいものではありません。 この質問の答えは、私にとってとても重要なものなので、真剣に考えてみてください。 Dimka-novitsek 2010.10.09 19:05 #8957 私としては、2番目の選択肢の方がより実用的で便利だと思います。 削除済み 2010.10.09 19:09 #8958 決心して、選んだ解決策に落ち着くこと。 必要な通貨ペアにEAを投げるだけ、あるいは特定の通貨ペアのためにEAを書くという考えにも傾いています。 というのも、「そのまま貼る」という選択肢に惹かれるからです。 私にとっては違うアプローチかもしれませんが、良い方向に変えたいとは思いません。 Dimka-novitsek 2010.10.09 19:20 #8959 了解です、とても賢いですね。私は専門家ではありませんが、2番目の選択肢の方がずっと簡単です。 Dimka-novitsek 2010.10.09 19:23 #8960 助けてください!Expert Advisorが動作せず、全く取引できません。 1...889890891892893894895896897898899900901902903...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
このようにテイクプロフィットを設定したいのです。
通常、TPは注文時に計算され、注文に割り当てられるので、OrderModify()で変更する必要があります。
ご指摘ありがとうございます。
EAを作ったばかりで、トレーニングを続け、毎回すべてが速くなっているのですが、取引できません。
もし可能であれば、アドバイスをお願いします。
//+------------------------------------------------------------------+
| ディモンズ ボーダーズ .mq4
//| 著作権 © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"著作権 © 2010, MetaQuotes Software Corp."
#プロパティリンク "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1,TakeProfit=50,stoploss=10。
int init()
{平均値。
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| 専門家による初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0)です。
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{double Average,Upper Border,Lower Border,newres,sum,deviation;
平均=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i)となります。
//----
newres=Close[i]-Average;
sum=newres*newres。
deviation=BandsDeviations*MathSqrt(sum/BandsPeriod) となります。
上界=平均+偏差。
下限値=平均値+偏差値。
//----
if (上界面<下界[i])
{コメント(" buoy! ",Upper Boundary );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*ポイント, Ask+TakeProfit*Point, "macd sample",16384,0,Green).OrderSend(Lots, Ask, 16384, 0,Green);
}
if (下限値>終値[i])
{ Comment(" sell! ",Bottom Border );
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red) を実行します。
}
return(0)です。
}
//+------------------------------------------------------------------+
英語以外の変数で申し訳ないです。
こんにちは!何が問題なのかがわからないのですが、「?成行注文を変更しない
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // 買いポジションのストップを計算する//。
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //買いポジションの利益を計算する//。
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //売りポジションのストップ高を計算する///。
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);
//================================================== ==================//
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())とする。
{
n++;
}}}
if ( 合計 == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alert("order exists", k);
{
if ((オーダータイプ()==OP_BUY)&&(OderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());
}}}}
return(0);}。
どうしたものか..............................助けてくれ
という場合でも、このように試してみることができます。
何がベストなのか。
- どのペアをどの期間で取引するか、アドバイザーに指定する。
または
- 必要なプリセットタイムフレームの通貨ペアのチャートにEAを投入する。
??
もうひとつだけ......気の利いたことを言わないでください、あらかじめ書いているのです、そうでないと、あまり気持ちのいいものではありません。
この質問の答えは、私にとってとても重要なものなので、真剣に考えてみてください。
決心して、選んだ解決策に落ち着くこと。
必要な通貨ペアにEAを投げるだけ、あるいは特定の通貨ペアのためにEAを書くという考えにも傾いています。
というのも、「そのまま貼る」という選択肢に惹かれるからです。
私にとっては違うアプローチかもしれませんが、良い方向に変えたいとは思いません。