[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 896

 
belck:

このようにテイクプロフィットを設定したいのです。

if (TakeProfit<10*Point) TakeProfit=10*Point;
インジケーターの線が一定時間後に位置を変えてしまうのですが、テイクプロフィットが変化せず、オープン時に設定したままの状態にするにはどうしたらよいでしょうか?
TPは通常、注文時に計算され、注文に割り当てられるので、OrderModify()を使って変更する必要があります。
 
IgorM:
通常、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)です。
}
//+------------------------------------------------------------------+

英語以外の変数で申し訳ないです。

 
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;
 

何がベストなのか。

- どのペアをどの期間で取引するか、アドバイザーに指定する。

または

- 必要なプリセットタイムフレームの通貨ペアのチャートにEAを投入する。

??

 

もうひとつだけ......気の利いたことを言わないでください、あらかじめ書いているのです、そうでないと、あまり気持ちのいいものではありません。

この質問の答えは、私にとってとても重要なものなので、真剣に考えてみてください。

 
私としては、2番目の選択肢の方がより実用的で便利だと思います。
 

決心して、選んだ解決策に落ち着くこと。

必要な通貨ペアにEAを投げるだけ、あるいは特定の通貨ペアのためにEAを書くという考えにも傾いています。

というのも、「そのまま貼る」という選択肢に惹かれるからです。

私にとっては違うアプローチかもしれませんが、良い方向に変えたいとは思いません。

 
了解です、とても賢いですね。私は専門家ではありませんが、2番目の選択肢の方がずっと簡単です。
 
助けてください!Expert Advisorが動作せず、全く取引できません。