コーディングの方法は? - ページ 175

 

あなたのシステムはちょっとおかしいような......。

extern double Lots=0.1;

extern int TP=50;

extern int SL=50;

extern int timeframe=1;

extern bool close=false;

extern int Slippage=2;

extern int Magic=46151;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

datetime LastTradeTime = 0;

int start()

{

int time=60*timeframe;

if(LocalTime()-LastTradeTime > time) {

if(close==true) {

if(OrdersTotal()!=0) {

for(int i = 0;i < OrdersTotal();i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Red ); }

} } }

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green);

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + SL * Point, Bid - TP * Point, NULL, Magic, 0, Red);

LastTradeTime = LocalTime(); }

return(0);

}

もし "close "がtrueなら、時間枠(この場合は1分)の終わりにオープンオーダーをクローズします。SL/TP=100は、5桁のブローカーで10pipsという意味です。

ちなみに、両方の注文をすぐに開くかどうかはわかりません。

クローズとオープン(もしくは2ポジションオープン)を同時に行うことは可能なのでしょうか?

バックテストではもちろん問題なく動作しますが、デモ/ライブ口座で 動作するかはわかりません。

 

どのブローカーでもうまくいったことがありません...。

注文がクローズされ、オープンされたかをチェック するために、遅延と確認コードを追加しました、もしそうでなければ、もう一度試してみてください。

それでも、まだ一貫して正しく動作していません。

 

これは多くの戦略にとって問題であるように思われます。この問題に対する解決策を見つけた方はいらっしゃいますか?

 

トレーリングストップの問題

円ペアでトレーリングストップを使用すると、利益確定後に価格が "0 "になってしまうのです。なぜこのような現象が起こるのか、またどのように修正すればよいのか、どなたか教えてください。 トレール注文は5桁の通貨では 問題なく動作します。

void TrailOrder(int type)

{

if(TrailingStop>0)

{

if(OrderMagicNumber() == MagicNumber)

{

if(type==OP_BUY)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(オーダーストップ・ロス()<ビッドポイント*トレイリングストップ)

{

注文変更(OrderTicket(),OrderOpenPrice(),Bid-(Point*TrailingStop),OrderTakeProfit(),0,Green);

}

}

}

if(type==OP_SELL)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)))。| (OrderStopLoss()==0))の場合

{

注文変更(OrderTicket(),OrderOpenPrice(),Ask+(Point*TrailingStop),OrderTakeProfit(),0,Red).を実行。

}

}

}

}

}

}

 
ajk:
円建てでトレーリングストップを使用すると、利益確定後に価格がゼロになることがあります。なぜこのような現象が起こるのか、またどのように修正すればよいのか、どなたか教えていただけませんか? 5桁の通貨ではトレール注文は正常に機能します。

私が思うに(あくまで私の意見ですが)、それはあなたが関数を持っていて、この関数はOrderOpenPrice(), OrderStopLoss() などについて何も知らないからだと思います。このコードはループの中に置いた方がいい。

 
ajk:
円のペアでトレーリングストップを使おうとすると、利益確定後に価格が「0」になってしまうことがあります。なぜそうなるのか、どうすれば直るのか、どなたか教えてください。 5桁の通貨ではトレール注文は正常に機能します。

NormalizeDouble(...)をこまめに使うことで、違いが出るかも?

 

異なるスケールで交差する2つのインディケータをコード化する方法

異なるスケールで交差する2つのインジケータのコード化方法は?

助けて欲しい

 

何でも挑戦してみます。コーダー・グルがEAをコード化し、私が修正したのですから不思議です。たくさんのEAに目を通しましたが、何も見つかりませんでした。

 

の後にどのようにコードを書くか、何か提案はありますか?

void TrailOrder(int type)

後にどのようにコードを書けばいいでしょうか?

関数を完全に取り出して、末尾のeaを外部で使用するとか...argh>!

 
ajk:
の後にどのようにコードを書くべきか、何か提案はありますか?

void TrailOrder(int型)

を呼び出す関数ですか?

関数を完全に取り出して、外部eを末尾にeaを使うとか...argh>!

もしあなたが望むなら、私はあなたのEAを修正することができます。PMで私にそれを送信します。