英語を母国語としない人たちは、あなたの話を理解できると思いますか?私は羊と羊飼いのジョンさんはわかるのですが、お話が意味不明です。(私のせいかもしれませんが...すみません)。
トレーディング/mql4の一般的な定義を使って、あなたの問題を「国際英語」で説明していただけませんか?
この文章は何を意味するのでしょうか?
英語を母国語としない人たちは、あなたの話を理解できると思いますか?私は羊と羊飼いのジョンさんはわかるのですが、お話が意味不明です。(私のせいかもしれませんが...すみません)。
トレーディング/mql4の一般的な定義を使って、あなたの問題を「国際英語」で説明していただけませんか?
この文章は何を意味しているのでしょうか?
ONLY CANDLE - ポジションを開くには?- を次のテーマとします。司会者:どうでしょう?
選択した シナリオを実行 します。
注文の出し方は?
int start() // start program { // We have some function here like "int CalculateCurrentOrders(string symbol)" and "double LotsOptimized()" // many different thing, suddenly! we have our "CheckOpen();" //-------------------------------- void CheckOpen() // void - because function return nothing { // start body int res; // we will use changeable "res" this is "int" value if( Bid==Close[1]+4*Point) // check conditions: Bid or Ask must be 4 Point above a BAR if no - nothing happen if Yes go below { // start body if res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,Open[1]+37*Point,0,"",MAGICMA,0,Red); // start "res" and "res" is sending message to platform to open position // what position is in "()" allways must be the same sequence symbol , op_*** , lot size , ...) return; // if "res" do it then retunrn too ... y ... "if". Because "if" is done return too CheckOpen(). Because "CheckOpen()" is done stop and end. } // stop body if } // stop body function "void CheckOpen()" //--------------------------------
注文は1 つです。
しかし、1つの関数で 2つのポジションを開くにはどうすればいいのでしょうか?
シナリオはCheckForOpenS1()で、価格が正しい位置にあれば2回 買う。
//-------------------------------- void CheckOpen1() // define first function { int res; if( Bid==Close[1]+4*Point) { res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red); return; } } void CheckOpen2() // define second function { int res; if( Bid==Close[1]+8*Point) // change 8 Point ( 4 ==> 8 ) { res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red); return; } } // I DONT KNOW.............. //-------------------------------- / our scenario void CheckForOpenS1()= true; void CheckOpen1() void CheckOpen2() //-------------------------------- / OR LIKE THESE int res; if ( CheckForOpenS1() == true) { res= CheckOpen1() CheckOpen2(); }
ONLY CANDLE - ポジションを開くには?- を次のテーマとします。司会者あなたは何を考えているのですか?
我々は、選択した シナリオを実装
どのように注文を送信するには?
我々は、 1つの注文を持っている
しかし、私は1つの関数で2つのポジションを開くために何をすべきか?
我々はシナリオを持っている CheckForOpenS1() これらのシナリオで我々は価格が正しい場所になる場合はもちろん、2回購入 する。
私はあなたが求めているものを本当に理解していない... ...あなたは非常に明確に自分自身を作っていない... ...または多分それは私だけです。
このコードは、しかし、あなたの問題を引き起こすでしょう ... ...
if( Bid == Close[1] + 4 * Point)
このスレッドを読む:価格することができます!=価格?
は そうで ないかもしれない
イベントの いくつかの シナリオで 簡単な EAを 書く方法
は小さな ろうそくでした - 機能1を 開く
は 平均的な ろうそく でした-機能2を 開く
は 大きな ろうそく でした-機能3を 開く
スイッチ( )は、この時点で 適切な 、私は思います
機能1は 1 ポジションを 開き、 それが 閉じる ことを確認
2は それらを 守る 2ポジションを 開き 、閉じる
3は 2ポジションを 開くが、 異なる価格で...
我々は キャンドルを持って いるたびに 、 毎回 異なる ことを 行う 別の関数が 存在します。
私は あなたが 私のために 書く ことができないことを知って いるが、 任意のアドバイス....
約束通り、もう一度見てみたが、やはり意味がわからない、申し訳ない。
これは決してうまくいかないでしょう。
double bull() // check first candle -mabey is bull { double A=Open[1]; // we use double because euro/usd have point example 1.9865 double B=Close[1]; double C=B-A; return(C); // <-- C is probably never 1,2,3,4,5..... } // when we have bull catalog/ segregate him.. switch(bull()) // <-- the expression here is something like 0.00123. None of your case statements will be executed. { case 1 : break; // nothing happen case 2 : break; // nothing happen case 3 : break; // nothing happen case 4 : CheckForOpenS1(); break; // start CheckForOpenS1()- take it and go thrue with this.. we will see want is '...S1' case 5 : CheckForOpenS2(); CheckForOpenS3() break; // start CheckForOpenS2() and S3 .... }
スイッチの使い方についてはこちらをご覧ください: https://docs.mql4.com/basis/operators/switch
これでは全く分かりません。
void CheckOpen2() // define second function { int res; if( Bid==Close[1]+8*Point) // change 8 Point ( 4 ==> 8 ) { res=OrderSend(Symbol(),OP_SELL,0.02,Bid,0,0,0,"",MAGICMA,0,Red); return; } }
等号の表現は好ましくないかもしれませんが、どうあるべきなのでしょうか?
もし < と読めれば、新しいバーが来たときにすぐに売り注文を出します(新しいバーの始値が前のバーの終値+8*Point よりも < である可能性があるため)。
もし>と表示されたら、価格が少し上昇するのを待って売り注文を出します。私はあなたの戦略をよく理解していないので、おそらくこのようにしたかったのでしょう。
という意味も想像できます。
if(Bid<Close[1]-8*Point)
1 ポイントが 1 ピップに相当する 4 桁のブローカーで取引されていますか?そうでなければ、価格は0.8ピップだけ動かなければならず、おそらくあなたが望むものではありません。
もう一度コードを確認し、修正できるところは修正してください。 具体的な質問がある場合は、遠慮なくご質問ください。あなたのストラテジーは、コーダーがあなたの言いたいことを誤解したために、全く別の動作をする可能性があることを認識しておいてください。
私の 戦略は次のとおりです。
ろうそくは 4から5ポイントに 強気で 表示さ れた場合、 ろうそくの後 (これまで、 任意の条件の 下で) 2買い 注文を 送信 する準備をする (価格は 1を 購入するために 私たちの 必要な レベルに到達 した場合、および buy2に 到達 する 方法)。
ろうそくが 6から7ポイントに 強気 表示さ れた場合、 ろうそくの 後(これまで、 任意の 条件の下で) 3買い注文を 送信 する準備を しなさい(価格は 1を 買うために 私たちの 必要な レベルに到達 した場合、および 購入2および3に 到達 する 方法)。
私は 入札の どこかに小さな ミスを持って いるか、 EAが 動作しない 理由を 尋ね る...(私は このエラーを 見つける ことができませんが、通常 EAは 私が書いたものの ために 非常によく動作 します... 買うと 閉じる) しかし、それは 私の 技術的な 計画を示して います。
私はそれが今で動作するように修正する
あなたが 底を 見ると、それは非常に 混雑し、 時には EA Bull4の シナリオを 置き換え 、 シナリオは Bull6 Bull4を 開き 、私は それが 突然 あなたの心を 変更 し、 Bull6 Bull6を 終了 実現 したよう な
それは 簡素化 することができますか?
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ #define MAGICMA 20050610 //+------------------------------------------------------------------+ //| Calculate open positions HOW MEANY OF THIS | //+------------------------------------------------------------------+ int CalculateCurrentOrders(string symbol) { int buys=0,sells=0; //---- for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA) { if(OrderType()==OP_BUY) buys++; } } //---- return orders volume return(buys); } //+------------------------------------------------------------------+ //| Calculate candle | //+------------------------------------------------------------------+ bool BULL4() { if(Close[1]-Open[1]>=4*Point && Close[1]-Open[1]<=5*Point) return(true); } bool BULL6() { if(Close[1]-Open[1]>=6*Point && Close[1]-Open[1]<=7*Point) return(true); } //+------------------------------------------------------------------+ //| Check for open order conditions | //+------------------------------------------------------------------+ void CheckForOpenBULL41() { int res; if(Bid==Close[1]+3*Point) { res=OrderSend(Symbol(),OP_BUY,0.41,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue); return; } } void CheckForOpenBULL42() { int res; if(Ask>OrderOpenPrice()+2*Point) { res=OrderSend(Symbol(),OP_BUY,0.42,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Blue); return; } } void CheckForOpenBULL61() { int res; if(Bid==Close[1]+4*Point) { res=OrderSend(Symbol(),OP_BUY,0.61,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red); return; } } void CheckForOpenBULL62() { int res; if(Ask>OrderOpenPrice()+2*Point) { res=OrderSend(Symbol(),OP_BUY,0.62,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red); return; } } void CheckForOpenBULL63() { int res; if(Ask>OrderOpenPrice()+2*Point) { res=OrderSend(Symbol(),OP_BUY,0.63,Ask,0,Close[1]-25*Point,0,"",MAGICMA,0,Red); return; } } //+------------------------------------------------------------------+ //| Check for close order conditions | //+------------------------------------------------------------------+ void CheckForCloseBULL() { RefreshRates(); if(OrderOpenPrice()+4*Point< Ask) for (int i = OrdersTotal(); i >= 0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if (OrderSymbol() == Symbol()) { bool ticket = true; if (OrderType() == OP_BUY) ticket = OrderClose(OrderTicket(),OrderLots(),Bid,1,Black); } } } //+------------------------------------------------------------------+ //| Start function | //+------------------------------------------------------------------+ void start() { if(BULL4()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL41(); else CheckForCloseBULL(); if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL42(); else CheckForCloseBULL(); //---// if(BULL6()==true && CalculateCurrentOrders(Symbol())==0) CheckForOpenBULL61(); else CheckForCloseBULL(); if(CalculateCurrentOrders(Symbol())==1) CheckForOpenBULL62(); else CheckForCloseBULL(); if(CalculateCurrentOrders(Symbol())==2) CheckForOpenBULL63(); else CheckForCloseBULL(); if(CalculateCurrentOrders(Symbol())==3) CheckForOpenBULL63(); else CheckForCloseBULL(); if(CalculateCurrentOrders(Symbol())==4) CheckForCloseBULL(); } //+------------------------------------------------------------------+
私の 戦略は次のとおりです。
ろうそくは 4から 5にBYK 表示 された場合、 ろうそくの後に (これまで、 任意の条件の 下で) 2つのデータの 購入注文を 送信 する準備を する(価格は 1を 購入する 私たちの 必要な レベルに達した場合、および zkup 2に 到達 する方法 )。
ろうそくは 6から7に BYK 表示さ れた場合、 ろうそくの 後に(これまで、 任意の 条件の下で) 3つの 買い注文を 送信 する準備をし なさい(価格は 1を 購入するために 私たちの 必要な レベルに到達 した場合、および zkup 2と 3に到達 する 方法)。
私は 入札の どこかに小さな ミスを持って いるか、 EAが 動作しない 理由を 尋ね る...(私は このエラーを 見つける ことが できませんが、通常 EAは 私が書いたものの ために 非常によく動作 します... 買うと 閉じる) しかし、それは 私の 技術的な 計画を示しています。
あなたが 底を 見ると、それは非常に 混雑し、 時には EA Bull4の シナリオを 置き換え 、 シナリオは Bull6 Bull4を 開き 、私は それが 突然 あなたの心を 変更 し、 Bull6 Bull6を 終了 実現 したよう な
それは 簡素化 することができますか?
BYK ?
これは間違っている ... .
for (int i = OrdersTotal(); i >= 0;i--)
... ポジションは0から始まるので、OrdersTotal() - 1からカウントダウンする必要があります。
これをやると ... ... ...
void CheckForCloseBull() // close ALL AT ONCE buy of course { RefreshRates(); if( OrderOpenPrice() > Ask+6*Point)
. ..OrderOpenPrice() を取得しますが、どの注文に対してでしょうか? 複数の注文を開いていることになります。
あなたはOrderSend()呼び出しからの戻り値を保持するために変数resを 使用しています ... そして、あなたはそれをどうしますか? 何もしません、なぜですか?
非常に 良い回答 RaptorUK
1。RESの問題
私はEAの 移動平均の 解像度を勉強して いる唯一の3倍、 時間の 関数としてすべて、 それが 存在しない ために後 です。
一度目は 「こんにちは、私 たちは再利用 さ れます」という情報のために 使用さ れます。
2 回目は注文を 送信するために 使用されます。OrderSendは 私たちの res = 343321、abowe 関数'void CheckForOpen () " resが 存在しないされている 注文の 数を返します。
しかし...
私は"ボイド CheckForOpen ()" の場合 だと思います。この コマンド OrderSelectの 真実を 観察 する何とかして "ボイド CheckForOpen()" 私は しようと する 以外の その番号を持って 来る....
2.OrderOpenPrice() の問題
あなたの言う とおり、 しかし、 この構文は 驚くほどよく動作します :) 私は その場所で何かをしようとします。
3.OrdersTotal() - 1おっしゃる とおり です。
4.BYK(ポーランド)= BULL翻訳者に問題があります。
まだ 私の EAを 理解して いない人のために 、 物語を 書く。D hehehehe
私たちが 行うすべての ステップは、 関数 です。私は今、コンピュータで 文章を書いて いますが、これは1つの 機能です。私は テレビ 番組を見て いますが、これは2番目の 機能 です。
今 のは、台所に 移動してみましょう...
我々は、料理の本を持って、 目次を 開き、 順次 ポイントを 読み取る
ポークチョップの 作り方第一弾 - ボウルに 肉を 入れ、塩、 コショウ、皮 ジャガイモを追加
左側の イベント - 右の 機能、 および テーマのいくつか - いいえ、 簡単に 限りません
ポークチョ ップを作る方法を読んだ後、物事を行うために、 それを 行う ために開始 します。 ステーキは 25分を 取得 し、私は 終わりを 持つ ように なった。
それは 5分 M5(5分後)我々は 料理の 本を読んで、次の点を開始 されています。
第二回 サラダの 作り方 - ニンジンの 皮、 タマネギの皮、その他の くだもの
そして、ここで 魔法が 起こる、 それは ダブル、メープル (二人称)を 作成した ため です。 我々は、同時に ポーク チョップと サラダに これを 行います。私 たちは、1つ で2人 キッチンで持って開始 します。
ポイントを 読めば読むほど、キッチンの 人が 登場 します。キッチンの 人々は、その職務を 完了 し、食器を洗浄 した後に 消えます。
イベントは キャンドル です - 購入と販売 または閉鎖の ための様々な オプションを備えて います。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
ONLYキャンドル - キャンドルのカタログや分離する方法?
修正お願いします
我々は、強気と弱気のろうそくを持っている私はこれを分離したい
それはちょうど 羊飼いのようなもの です。羊飼いは、農場、小作地を持っており、羊を持っています。
それは羊を剃るために季節であるとき羊飼い氏JOHNは、羊をキャッチし、ファームに移動し...
最初に捕まえた羊は小さすぎて毛を剃ることができません。
次の羊はいい羊で、ジョンはハサミを持ち、羊は裸になります。
次の羊は、羊毛が 大きくて良い羊です。
次の羊は牡羊 座 - ジョンはナイフを持ち、牡羊座は宦官。
同じことをロウソク足でやってみたい
私たちのキャンドルはBar[0]に向かっている...私たちは待っている...彼女は行っている、私たちは待っている....15分(M15)、それがある! ...何ですか?...それは何ですか?
私はBullischキャンドルとキャンドル(価格オープン[1]-価格クローズ[1])が小さすぎる2点を持っている場合 - 手放す、我々は何もしない。
私はBullischキャンドルとキャンドルを持っている場合(価格オープン[1]-価格クローズ[1])4ポイントを持っている - その後、プログラムを起動します。
CheckForOpenS1(); 価格がローソク足より+4ポイントになったら買い機能 開始 (scenario1)
もし私がブリスチキャンドルを持っていて、キャンドル(価格オープン[1]-価格クローズ[1])が5ポイントを持っているなら、これは非常に大きなキャンドルである - 次にプログラムを開始します。
CheckForOpenS2();私たちの価格は私たちのキャンドル(シナリオ2)の上に+ 14ポイントを取得した場合、購入関数を起動します。
私はこの魔女にすべてのキャンドルにしたい、私は私が小さすぎるキャンドルを持っている場合、私は大きなキャンドルを持っている場合、私は次のために待機することになりますプログラムを購入する開始したい。
だから...これは正しいのですが、私はアイデアを持っている:)
必要ないことを書かないでください。