//Procedure OrderSendBuyvoid OrderSendBuy(string WorkSymbol,double LotsSize=0,int Slippage=3,int SizeSL=0,int SizeTP=100,
string Text=NULL,int MN=0,datetime Expiration=0,color OrdrtColor=CLR_NONE){//----------------------------------------------------------------------------//// Служебные переменныеdouble RealAsk, RealBid;//Текущие Ask и Bid инструментаdouble SymbolPoint;//Размер пункта текущего инструментаdouble SL, TP;// StopLoss и TakeProfit будущей позицииint TicketNew;//Тикер новой позиции (в случае удачи, иначе -1)//----------------------------------------------------------------------------////Зашита от дуракаif( LotsSize<MarketInfo( WorkSymbol,MODE_MINLOT)){ LotsSize =MarketInfo( WorkSymbol,MODE_MINLOT);}//Расчет параметров для новой позиции
SymbolPoint =MarketInfo( WorkSymbol,MODE_POINT);//Определяем размер пункта
RealAsk =MarketInfo( WorkSymbol,MODE_ASK);//Определяем Ask
RealBid =MarketInfo( WorkSymbol,MODE_BID);//Определяем Bidif( SizeTP>0){ TP = RealAsk+ SizeTP* SymbolPoint;}else{ TP = RealAsk+100* SymbolPoint;}if( SizeSL>0){ SL = RealBid- SizeSL* SymbolPoint;}else{ SL =0;}//Попытка открыть позицию с рынка
TicketNew =OrderSend( WorkSymbol,OP_BUY, LotsSize, RealAsk, Slippage, SL, TP, Text, MN, Expiration, OrdrtColor);//Проверка ошибок возникших при открытии новой позицииif( TicketNew==-1)//При открытии произошла ошибка{Print("Попытка открыть Market-Buy позицию по паре ", WorkSymbol," окончилась неудачно. Код ошибки #",GetLastError())
;}else//Позиция успешно установлена{Print("Успешно создана позиция Market-Buy по паре ", WorkSymbol," Тикер новой позиции #", TicketNow);Alert("Open market-Buy, ticket ", TicketNew," Open price ", RealAsk," Profit ", TP," SL ", SL);}//----------------------------------------------------------------------------//}
//Procedure OrderSendLimitBuyvoid OrderSendLimitBuy(string WorkSymbol,double LotsSize=0,int Slippage=3,int LimitStep=50,int SizeSL=0,int SizeTP=100,string Text=NULL,int MN=0,datetime Expiration=0,color OrdrtColor=CLR_NONE){//----------------------------------------------------------------------------//// Служебные переменныеdouble RealAsk, RealBid;//Текущие Ask и Bid инструментаdouble OpenPrice;//Цена на которую будет установлен отложникdouble SymbolPoint;//Размер пункта текущего инструментаdouble SL, TP;// StopLoss и TakeProfit будущей позицииint TicketNew;//Тикер новой позиции (в случае удачи, иначе -1)//----------------------------------------------------------------------------////Зашита от дуракаif( LotsSize<MarketInfo( WorkSymbol,MODE_MINLOT)){ LotsSize =MarketInfo( WorkSymbol,MODE_MINLOT);}//Расчет параметров для новой позиции
SymbolPoint =MarketInfo( WorkSymbol,MODE_POINT);//Определяем размер пункта
RealAsk =MarketInfo( WorkSymbol,MODE_ASK);//Определяем Ask
RealBid =MarketInfo( WorkSymbol,MODE_BID);//Определяем Bid
OpenPrice = RealAsk- LimitStep* SymbolPoint;//Цена на которую будет установлен отложникif( SizeTP>0){ TP = OpenPrice+ SizeTP* SymbolPoint;}else{ TP = OpenPrice+100* SymbolPoint;}if( SizeSL>0){ SL = RealBid-( SizeSL+ LimitStep)* SymbolPoint;}else{ SL =0;}//Попытка открыть позицию с рынка
TicketNew =OrderSend( WorkSymbol,OP_BUYLIMIT, LotsSize, OpenPrice, Slippage, SL, TP, Text, MN, Expiration, OrdrtColor);//Проверка ошибок возникших при открытии новой позицииif( TicketNew==-1)//При открытии произошла ошибка{Print("Попытка создать Limit-Buy по паре ", WorkSymbol," окончилась неудачно. Код ошибки #",GetLastError());}else//Позиция успешно установлена{Print("Успешно создан ордер Limit-Buy по паре ", WorkSymbol," Тикер ордера #", TicketNow);Alert("Create Limit-Buy, ticket ", TicketNew," Open price ", OpenPrice," Profit ", TP," SL ", SL);}//----------------------------------------------------------------------------//}
Dmido писал(а) >>
ごきげんよう)
質問でおじゃまします。 EAの保留注文について理解不足でずっと避けていたのですが、ついに行き詰まりました。保留中の注文に価格を設定する方法がわかりません。BIDとASKの代わりに何を追加すればいいのでしょうか?それ以前に算出された変数も使用できますか?では、この価格をどのように設定すれば、後で注文を出すときに通るようになるのでしょうか?そんな値段はない、などとエラーが出るのですが......。
もしよろしければ、答えを暗号で説明していただいても...。あれだけ検索したのに、横文字ばかり・・・((
アスクとビッドの値の品質では、アイデアのアスクとビッドの現在の値、または以前に計算された変数を作用させる必要があります。
この値は、買い注文と売り注文の場合のみ、実際の値として扱われます。
最も良いのは、すべてのオーダーのオープニングを、少なくとも6つのプロシージャー、すなわちOrderSendBuy, OrderSendSell, OrderSendLimitBuy, OrderSendLimitSell, OrderSendStopBuy and OrderSendStopSell.
追記
なお、指値注文はベストプライス(現在値から一定ポイント数インデント)で、逆指値注文は現在値の上下に逆方向で発注されます。
マーケットからのオープニングコードの例。
保留中の注文を設定するための コード例です。
こんにちは。
EAをテストしています。
ミスマッチエラーが発生するのですが。避ける方法はないのでしょうか?これがエラーの数が多いのか少ないのか、よくわからない。スケールは緑と濃い緑が主体ですが、20%程度しか埋まっていません。また、シミュレーションのクオリティはn/aですが、問題ないでしょうか?
多分、私は注意を払うべきでない、私はただ理解できない・・・。
ありがとうございました。
こんにちは。
EAをテストしています。
ミスマッチエラーが発生するのですが。避ける方法はないのでしょうか?これがエラーの数が多いのか少ないのか、よくわからない。スケールは緑と濃い緑が主体ですが、20%程度しか埋まっていません。また、シミュレーションのクオリティはn/aですが、問題ないでしょうか?
多分、私は注意を払うべきでない、私はただ理解できない・・・。
ありがとうございました。
私自身は、そのようなことを気にしたことがないのでわかりません(ほとんど可視化せずに戦略をテストしているので)。
同じようなテスト期間のJew D1での結果は以下の通りです。
試行回数1回目:履歴のバー - 1302ティック シミュレーション - 4313293 シミュレーションの質 - 50.00%.
試み2:履歴のバー - 1303 モデリングされたティック - 4323442 モデリング品質 - 50.00%.
チャートの不一致エラー - 0件。
私自身はそのようなことは気にしたことがないのでわかりません(私はほとんどいつも視覚化なしで戦略をテストしているので)。
同じようなテスト期間のJew D1での結果は以下の通りです。
試行回数1回目:履歴のバー -1302 ティック シミュレーション -4313293 シミュレーションの質 -50.00%.
試行回数2:履歴:1303 本-1303 ティックのシミュレーション-4323442 モデリング品質-50.00%。
チャート不一致のエラー -0.
ありがとうございます。
今考えているのは、MTが自動的に最後の512本のバーを埋め、残りを埋めるということです・・・。正確にはどう言えばいいのかわからない。私のExpert Advisorはトレンド系なので、距離が重要なのですが、512本というのは多すぎではないでしょうか。
他のシンボルについては、別サイトからダウンロードして、後からダウンロードすることも可能なのですね。
ありがとうございました。
こんにちは、親愛なる皆さん。
最近、天気のせいなのか、頭が悪いです。
1次元配列の要素 数を外部変数で設定する場合、(インジケータで)どのように宣言すればよいか教えてください。
ありがとうございます。
こんにちは。
EAをテストしています。
ミスマッチエラーが発生するのですが。避ける方法はないのでしょうか?これがエラーの数が多いのか少ないのか、よくわからない。スケールは緑と濃い緑が主体ですが、20%程度しか埋まっていません。また、シミュレーションのクオリティはn/aですが、問題ないでしょうか?
多分、私は注意を払うべきでない、私はただ理解できない・・・。
ありがとうございました。
私の下のIMHOが、引用されている-私は間違っている場合、私を修正してください。
ポイントは、M15の59分足の終値、45分足の終値、M30の30分足の終値、H1の終値が一致しない場合があることです。
一致させるためには、より小さい期間の引用のサーバーから履歴をダウンロードすることによって、あなた自身の履歴を殺す必要があります
をダウンロードし、ダウンロードした履歴を使用してすべてのタイムフレームを再計算します。
この場合、異なる時間軸のリアルクローズも一致しないことがあります。
つまり、小さい方のタイムフレームをとって、大きい方のタイムフレームの値をHANDで読めばいいのです。
こんにちは、親愛なる皆さん。
最近、天気のせいなのか、頭が悪いです。
1次元配列の要素数を外部変数で設定する場合、(インジケータで)どのように宣言すればよいか教えてください。
ありがとうございます。
int y[];
extern int blah-blah = 100;
init() {
ArrayResize(y,blah-blah)です。
}
私の下のIMHOが、引用であること、私が間違っている場合、私を修正してください。
実は、M15のクローズ59分、クローズ45分、M30のクローズ30分、H1のクローズは一致しない場合があります。
一致させるためには、より小さい期間の引用のサーバーから履歴をダウンロードすることによって、あなた自身の履歴を殺す必要があります
をダウンロードし、ダウンロードした履歴を使用してすべてのタイムフレームを再計算します。
この場合、異なる時間軸のリアルクローズも一致しないことがあります。
つまり、良い意味で、小さい方のタイムフレームをとって、大きい方のタイムフレームの値を読み取ることです。
О!ハンズ!!!
回答ありがとうございました。しかし、最初の部分から判断すると、このエラーは私にとって致命的なものではないことが理解できます。これらのエラーのメカニズムについて説明していただき、どうもありがとうございました。
を一番上に持ってきました。
このフラグについて具体的に悩んでいるのですが、どなたか再確認していただけませんか?
-----------------
と、EAコードにも問題があります。
トレーディングじゃないんだ!もしかしたら、誰かが新鮮な気持ちで見てくれるかもしれません。
は、100(-100)が取引に入ると同時にバカにすることにしました
EAを付ける!