アスク! - ページ 145

 

MQLでウェブサービスを呼び出す

エキスパートアドバイザーから外部のウェブサービスを呼び出す方法をご存知の方はいらっしゃいますか?

 
 

これは基本的なことだと思うのですが、アクセスする方法がわかりません。 どなたか、日足以外のチャートで、数日前の日足Open/Closeを取得する方法を教えていただけませんか? サンプルコードを提供していただけると助かります。

Thx

ET

 

MetaEditorのヘルプにあるiopenとicloseを 参照してください。

ラックス

 
luxinterior:
MetaEditorのヘルプで、iopenとiclose Luxについて調べてみてください。

ありがとうございます。

ET

 

コード修正依頼

こんにちは。

添付のインジケータを改造して、以下のことを実行しようとしています。

1) 開始日を色1と一致させる。現在、このインジケータはシリーズの2番目の色(色2)を開始日にプロットし、最初の色にはしない。

2) シリーズの各プロット線の日付、色、始値、高値、安値、終値を出力する。 このファイルは、新しいデータが利用可能になると追加されるでしょう。

よろしくお願いします。

よろしくお願いします。

ファイル:
 

安値計算/高い時間枠のトレンド使用/スプレッド問題回避

以下の要件を満たすコーディングのサンプルを探しています。

ストップ位置の計算のために、任意の時間枠でEAに過去X個のバーの 間の最安値(または最高値)を教えて、その価格からX個のピップを引いて(または最高値の場合はプラス)ストップレベルを設定するコーディングを見たいと思います。

短い時間枠の新規注文を大きい時間枠のトレンドと同じ方向に出すには、短い時間枠のチャートで大きい時間枠のチャートのトレンドと同じ方向にのみ新規注文が出せるようなコーディングが欲しいです。 簡単な例として、15分足チャートのEAがMA1がMA2を上抜けたところで買い注文を出したいとします(ストップは先の質問のように直近5バーの最安値より5ピップ下)しかし私は、同じペアの1時間足チャートで現在の価格がX期間のMAの上(または売りの場合は下)においてのみ新規注文を出すコードを探しています。

異常に広いスプレッドによる注文の誤った開始/終了を避けるために、バーがまだ開いている間にトリガーされるのではなく、現在の(または以前のバーも考慮される)closeに基づいてのみ注文アクションをトリガーするコードを見たいと思います。 例えばIBFXでは、通常5pipsのスプレッドが20pipsまで広がることがよくあります(53pipsを見たこともあります!)。 このような広いスプレッドのアクションは、バーの形成中にMAが一時的に交差したために新しい注文を開くことが多いようですが、バーが閉じた時点で交差していないため、不要な買い注文を残すことになります。

これらのことに対処するためのコードサンプルは非常に高く評価されるでしょう。

 
ファイル:
 

coderguruさんへ。

色を変えるのはコーディングの中で一番簡単な作業かもしれませんが、私はそれができません............。

このコードのサポートとレジスタンスを別の色に変えるだけです。

ここでは抵抗線と支持線は同じような色になっています............。

また、インジケータを削除しても、オブジェクトは削除されません。

ありがとうございました。

ファイル:
 

Trailling Stop / 1 Risk or Position Mに関するヘルプ

こんにちは。

私は、フォーラムで私の問題の解決策を検索しようとしました。

私のEAの冒頭で。

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

私は誰かがこの問題で私を助けることができることを願っています!!!!!!!すべての人に感謝します。